繁体   English   中英

如何在Python中打印行

[英]How to print lines in Python

我在Python中遇到过这样的代码:

print "Let's talk about %s." % my_name

但是,我在Ruby中看到了两种情况具有相同输出的情况:

print "Let's talk about #{my_name}."

print "Let's talk about %s." % my_name"

只有一种方法可以在Python中打印同一行吗?

在Python中,还有几种方法:

print "let's talk about this %s" % my_name
print "let's talk about this {:s}".format(my_name)
print "let's talk about this", my_name

全部产生相同的输出。 但是,鼓励使用.format方法(自Python v 2.6起可用)而不是旧的% (引用3.0的新增功能 :“ ... ...仍支持%运算符;它将在Python中弃用。 3.1,并在稍后的时间将其从语言中删除。 ”)

最后,从Python v3.x开始, print是一个函数,因此所有print语句都需要()

在红宝石中, {}之间的部分是一个表达式。 Python有没有办法来评估格式字符串的表达式这种方式。

print "Let's talk about #{my_name}."

在表达式只是一个变量的简单情况下,您可以使用

print "Let's talk about %(my_name)s"%{'my_name':my_name}

或此处其他答案中给出的其他任何替代方法。

首选方法是使用format()。 例如。

print "Let's talk about {my_name}".format(my_name=my_name)

您也可以串联字符串。 这少了pythonic的特性,使您对输出的最终外观的控制更少,但是一些非程序员似乎觉得这更容易阅读(例如,如果您正在讨论特定的计算):

print "Let's talk about " + str( my_name )

str()函数可能是必需的,也可能不是必需的,但是它允许您添加其他数据类型(例如整数)而不会出现TypeError。

有关string.format()与%的更多信息,请参见此较早的文章: Python字符串格式:%与.format

除了这里的其他答案外,还有映射键,我花了很长时间才发现它在Python中的生命。

>>> '%(foo)s' % {'foo': 'bar'}
'bar'

看一下整个shebang的字符串格式化操作

我的最爱之一是使用值字典:

>>> values = {"name": "john"}
>>> print "Let's talk about {name}".format(**values)
Let's talk about john

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM