C 中的示例:
for (int i = 0; i < 4; i++)
printf(".");
输出:
....
在 Python 中:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
在 Python 中,print
将添加一个 \n
或空格。我怎样才能避免这种情况?我想知道如何将字符串“附加”到 stdout
。
在 Python 3 中,您可以使用 print
的 sep=
和 end=
参数功能:
不要在字符串末尾添加换行符:
print('.', end='')
不要在要打印的所有函数参数之间添加空格:
print('a', 'b', 'c', sep='')
您可以将任何字符串传递给任一参数,并且可以同时使用这两个参数。
如果您在缓冲时遇到问题,可以通过添加 flush=True
关键字参数来刷新输出:
print('.', end='', flush=True)
Python 2.6 和 2.7
在 Python 2.6 中,您可以使用 __future__
module 从 Python 3 中导入 print
函数。 :
from __future__ import print_function
它允许您使用上面的 Python 3 解决方案。
但请注意,flush
关键字在 Python 2 中从 __future__
导入的 print
函数版本中不可用;它仅适用于 Python 3,更具体地说是 3.3 及更高版本。在早期版本中,您仍然需要通过调用 sys.stdout.flush()
手动刷新。您还必须在执行此导入的文件中重写所有其他打印语句。
或者您可以使用 sys.stdout.write()
import sys
sys.stdout.write('.')
您可能还需要调用
sys.stdout.flush()
确保立即刷新stdout
。
我是一名优秀的程序员,十分优秀!