在python 2中,python print语句不是函数,而在python 3中,这已被转换为函数
当我输入print(
时,我会得到一些hovertext (或类似的东西)到
print(value,...,sep=' ', end='\n', file=sys.stdout, flush=False)
我知道什么价值意味着但是澄清了其他变量意味着什么以及python 3的print语句优于python 2的优点是什么(especially sep=' ')
答案 0 :(得分: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)
答案 1 :(得分:1)
Python 2没有等效的sep
因为print
不是函数而且无法传递参数。你能做的最接近的是join
:
print ' '.join([value, ...])
至于file
,你必须使用这个(在我看来很尴尬)语法:
print >> sys.stdout, ' '.join([value, ...])
我不会在这里复制/粘贴文档,所以如果你想知道这些参数的用途,请阅读它。