python 3打印声明澄清

时间:2013-06-22 04:34:15

标签: python python-3.x

在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=' ')

2 个答案:

答案 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, ...])

我不会在这里复制/粘贴文档,所以如果你想知道这些参数的用途,请阅读它。