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