Python-如何在没有换行符或空格的情况下进行打印?
我想用python来做 。我想在c
中的此示例中做什么:
在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
或空格,如何避免呢?现在,这只是一个例子,不要告诉我可以先构建一个字符串然后再打印它。我想知道如何将字符串”append”到stdout
。
回答:
在Python 3中,你可以使用函数的sep=
和end=
参数print
:
不在字符串末尾添加换行符:
print('.', end='')
在要打印的所有函数参数之间不添加空格:
print('a', 'b', 'c', sep='')
你可以将任何字符串传递给任何一个参数,并且可以同时使用两个参数。
如果你在缓冲方面遇到麻烦,可以通过添加flush=True
关键字参数来刷新输出:
print('.', end='', flush=True)
Python 2.6和2.7
在Python 2.6中,你可以print使用__future__
模块从Python 3 导入函数:
from __future__ import print_function
允许你使用上面的Python 3解决方案。
但是,请注意,在从Python 2中导入flush
的print
函数的版本中,该关键字不可用__future__
。它仅适用于Python 3,更具体地说是3.3及更高版本。在早期版本中,你仍然需要通过调用进行手动刷新sys.stdout.flush()
。你还必须在执行此导入操作的文件中重写所有其他打印语句。
或者你可以使用 sys.stdout.write()
import syssys.stdout.write('.')
你可能还需要致电
sys.stdout.flush()
确保stdout立即冲洗。
以上是 Python-如何在没有换行符或空格的情况下进行打印? 的全部内容, 来源链接: utcz.com/qa/417622.html