在Python 2中,print有一条语句:
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()是一个函数,具有常用的关键字参数:
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。