0

在 python 2 中,python print 语句不是一个函数,而在 python 3 中,这已经变成了一个函数

当我输入时,print(我会得到一些悬停文本(或类似的东西)

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

我知道值的含义,但希望澄清一下这些其他变量的含义以及 python 3 的 print 语句相对于 python 2 的优势是什么(especially sep=' ')

4

2 回答 2

5

当您提供多个参数时,print它们通常用空格分隔:

>>> print(1, 2, 3)
1 2 3

sep让您将其更改为其他内容:

>>> print(1, 2, 3, sep=', ')
1, 2, 3

通常,print会在末尾添加一个新行。end让你改变:

>>> print('Hello.', end='')
Hello.>>>

通常print会写入标准输出。file让你改变:

>>> with open('test.txt', 'w') as f:
...     print("Hello, world!", file=f)
...

通常print不会显式刷新流。如果你想避免额外的sys.stdout.flush(),你可以使用flush. 这样做的效果通常很难看到,但如果不flush=True这样做应该让它可见:

>>> import time
>>> while True:
...     print('.', end='', flush=True)
...     time.sleep(0.5)
于 2013-06-22T04:41:25.690 回答
1

Python 2 没有sep等价物,因为print它不是函数并且不能传递参数。你能做的最接近的是join

 print ' '.join([value, ...])

至于file,你必须使用这个(在我看来很尴尬)语法:

print >> sys.stdout, ' '.join([value, ...])

我不会在此处复制/粘贴文档,因此如果您想知道这些参数的用途,请阅读它。

于 2013-06-22T04:39:55.843 回答