Python打印语句与打印功能

示例

在Python 2中,print有一条语句:

Python 2.x 2.7
print "Hello World"
print                         # 打印换行符
print "No newline",           # 添加结尾逗号以删除换行符 
print >>sys.stderr, "Error"   # 打印到stderr
print("hello")                # print "hello", since ("hello") == "hello"
print()                       # print an empty tuple "()"
print 1, 2, 3                 # print space-separated arguments: "1 2 3"
print(1, 2, 3)                # print tuple "(1, 2, 3)"

在Python 3中,print()是一个函数,具有常用的关键字参数:

Python 3.x 3.0
print "Hello World"              # 语法错误
print("Hello World")
print()                          # 打印换行符 (must use parentheses)
print("No newline", end="")      # end指定要追加的内容(默认为换行符)
print("Error", file=sys.stderr)  # 文件指定输出缓冲区
print("Comma", "separated", "output", sep=",")  # sep指定分隔符
print("A", "B", "C", sep="")     # Sep的空字符串:打印为ABC
print("Flush this", flush=True)  # 刷新输出缓冲区,在Python 3.3中添加
print(1, 2, 3)                   # print space-separated arguments: "1 2 3"
print((1, 2, 3))                 # print tuple "(1, 2, 3)"

打印功能具有以下参数:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

sep是分隔传递给打印对象的对象。例如:

print('foo', 'bar', sep='~') # 出:foo〜bar
print('foo', 'bar', sep='.') # 出:foo.bar

end是print语句的末尾。例如:

print('foo', 'bar', end='!') # 出:foo吧!

在非换行符结尾的打印语句之后再次打印打印到同一行:

print('foo', end='~')
print('bar')
# 出:foo〜bar

注意:为了将来的兼容性,Python 2.6及更高版本中还提供了print 功能。但是,除非使用以下命令禁用对print 语句的解析,否则不能使用它

from __future__ import print_function

该函数具有与Python 3完全相同的格式,只是缺少flush参数。

原理请参见PEP 3105。