如何在Python中打印行

如何在Python中打印行,python,ruby,Python,Ruby,我在Python中遇到过这样的行: print "Let's talk about %s." % my_name 然而,我在Ruby中看到过这样的情况,即这两个函数具有相同的输出: print“让我们谈谈{my#u name}。” print“让我们谈谈%s.%my\u name” 在Python中打印同一行只有一种方法吗?在Python中,还有几种方法: print "let's talk about this %s" % my_name print "let's talk about th

我在Python中遇到过这样的行:

print "Let's talk about %s." % my_name
然而,我在Ruby中看到过这样的情况,即这两个函数具有相同的输出:

print“让我们谈谈{my#u name}。”

print“让我们谈谈%s.%my\u 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
它们都生成相同的输出。但是,与旧式的
%
相比,鼓励使用该方法(从Python v 2.6开始提供)。(引自:“……仍然支持%运算符;它将在Python 3.1中被弃用,稍后从该语言中删除。”)


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

在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
它们都生成相同的输出。但是,与旧式的
%
相比,鼓励使用该方法(从Python v 2.6开始提供)。(引自:“……仍然支持%运算符;它将在Python 3.1中被弃用,稍后从该语言中删除。”)


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

,您还可以连接字符串。这不太像pythonic,让您无法控制输出的最终外观,但一些非程序员似乎觉得这更容易阅读(例如,如果您正在讨论特定的计算):

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

有关string.format()与%的详细信息,请参阅这篇旧文章:

您还可以连接字符串。这不太像python,对输出的最终外观的控制也不太强,但一些非程序员似乎觉得这更容易阅读(比如,如果您正在讨论特定的计算):

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

有关string.format()与%的详细信息,请参阅这篇旧文章:

除了这里的其他答案之外,还有映射键,我在使用Python的生活中花了太长时间才发现

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

看看整个shebang。

除了这里的其他答案之外,还有映射键,我用Python花了太长时间才发现

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

查看整个shebang。

在ruby中,
{}
之间的部分是一个表达式。Python无法以这种方式计算格式字符串中的表达式

print "Let's talk about #{my_name}."
在表达式仅包含一个变量的简单情况下,可以使用

print "Let's talk about %(my_name)s"%{'my_name':my_name}
或者其他答案中给出的任何其他备选方案

首选的方法是使用format()


在ruby中,
{}
之间的部分是一个表达式。Python无法以这种方式计算格式字符串中的表达式

print "Let's talk about #{my_name}."
在表达式仅包含一个变量的简单情况下,可以使用

print "Let's talk about %(my_name)s"%{'my_name':my_name}
或者其他答案中给出的任何其他备选方案

首选的方法是使用format()


我最喜欢的方法之一是使用字典查找值:

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

我最喜欢的方法之一是使用字典查找值:

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

我刚开始使用.format方法。为什么您最后显示的打印是首选方式?我发现它非常冗长。我不想争论,但我不认为它有什么好处。也许这只是这个简单示例的上下文?或者有什么好的理由吗?@Levon,format()在文本输出中使用替换映射是一个好习惯,因为如果你不得不使用i18i,那么它会让你的生活变得更轻松。我刚刚开始使用.format方法。为什么你最后显示的打印是首选方式?我发现它非常冗长。我不想争辩,但我看不出有什么好处。也许这只是这个简单示例的上下文?或者有什么好的理由吗?@Levon,format()为您提供了对输出的大量控制—间距、填充等。在文本输出中使用替换映射是一个好习惯,因为如果您必须根据需要通过打印输出的数据的范围进行独立操作,则会使工作变得更轻松。对于单行,使用单个值是多余的,但是当您开始增加输出中的变量可以更干净。这取决于您需要通过打印输出的数据的范围。对于单行,使用单个值是多余的,但是当您开始增加输出中的变量时,它可以更干净。