在 python 2 中,python print 语句不是一个函数,而在 python 3 中,这已经变成了一个函数
当我输入时,print(
我会得到一些悬停文本(或类似的东西)
print(value,...,sep=' ', end='\n', file=sys.stdout, flush=False)
我知道值的含义,但希望澄清一下这些其他变量的含义以及 python 3 的 print 语句相对于 python 2 的优势是什么(especially sep=' ')
在 python 2 中,python print 语句不是一个函数,而在 python 3 中,这已经变成了一个函数
当我输入时,print(
我会得到一些悬停文本(或类似的东西)
print(value,...,sep=' ', end='\n', file=sys.stdout, flush=False)
我知道值的含义,但希望澄清一下这些其他变量的含义以及 python 3 的 print 语句相对于 python 2 的优势是什么(especially sep=' ')
当您提供多个参数时,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)
Python 2 没有sep
等价物,因为print
它不是函数并且不能传递参数。你能做的最接近的是join
:
print ' '.join([value, ...])
至于file
,你必须使用这个(在我看来很尴尬)语法:
print >> sys.stdout, ' '.join([value, ...])
我不会在此处复制/粘贴文档,因此如果您想知道这些参数的用途,请阅读它。