要首先回答一般性问题,您可以在编写代码时使用打印一般性地将脚本中的信息输出到屏幕,以确保获得所期望的结果。
随着代码变得更加复杂,您可能会发现日志记录比打印更好,但这是另一个答案的信息。
在与Python解释器的交互会话中,打印和返回值的表示有很大的不同。打印应该打印到您的标准输出。在脚本中运行等效代码时,表达式返回值的回显表示(如果不是None,则显示在Python shell中)将是静默的。
一。印刷
在Python 2中,我们有print语句。在Python 3中,我们得到一个print函数,也可以在Python 2中使用。
用逗号打印语句(Python 2)
带有逗号分隔项的print语句使用空格分隔项。后面的逗号将导致追加另一个空格。没有尾随逗号将追加要追加到打印项的换行符。
您可以将每个项放在单独的print语句中,并在每个项之后使用逗号,它们将在同一行上打印相同的内容。
例如(这只适用于脚本,在交互式shell中,每行后面都会有一个新的提示):x = "Hello"
y = "World"
print "I am printing",
print x,
print y
将输出:I am printing Hello World
打印功能
使用Python 3中的内置打印功能,Python 2.6和2.7中也提供了此导入:from __future__ import print_function
您可以声明一个分隔符和一个结束符,这给了我们更多的灵活性:>>> print('hello', 'world', sep='-', end='\n****\n')
hello-world
****
>>>
sep的默认值是' ',end的默认值是'\n':>>> print('hello', 'world')
hello world
>>>
2。字符串连接
连接在内存中创建每个字符串,然后在它们的末端将它们组合成一个新字符串(因此这可能对内存不太友好),然后将它们同时打印到输出中。当需要将字符串(可能是在其他地方构造的)连接在一起时,这是很好的。print('hello' + '-' + 'world')
将打印hello-world
在尝试以这种方式将其他类型的文本连接到字符串之前,请小心,以便首先将文本转换为字符串。print('here is a number: ' + str(2))
印刷品here is a number: 2
如果尝试连接整数而不首先将其强制为字符串:>>> print('here is a number: ' + 2)
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate 'str' and 'int' objects
这应该说明您应该只尝试连接已知为字符串的变量。接下来演示的新格式设置方法将为您处理此问题。
三。字符串插值
您演示的格式是从C中借用的字符串插值的旧样式。它使用旧字符串,一次创建一个新字符串。它的功能相当简单。当您可能需要构建一个相当大的模板时(在3+行和3+变量处,您肯定应该这样做)。
新的方法是这样做(使用参数索引):print('I am printing {0} and {1}'.format(x, y))
或者在Python2.7或3中(使用隐含索引):print('I am printing {} and {}'.format(x, y))
或者使用命名参数(这在语义上很容易阅读,但代码看起来不太枯燥(即不要重复自己的代码)print('I am printing {x} and {y}'.format(x=x, y=y))
相对于%样式的格式化(这里没有演示),这种格式的最大好处是它允许您组合位置参数和关键字参数print('I am printing {0} and {y}'.format(x, y=y))
Python 3.6中的新特性,格式化文本
Python 3.6将具有format literals,语法更优雅(冗余更少)。简单的语法如下:print(f'I am printing {x} and {y}')
格式文本实际上可以就地执行代码:>>> print(f'I am printing {"hello".capitalize()} and {"Wo" + "rld"}')
I am printing Hello and World