rank | vote | view | answer | url |
---|---|---|---|---|
57 | 1441 | 1459468 | 26 | url |
如何使打印的内容没有空格或换行
在 c
语言中我可以这么打印:
#include <stdio.h>
int main() {
int i;
for (i=0; i<10; i++) printf(".");
return 0;
}
输出:
..........
在 Python 里:
>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .
在 Python 里 print
会加上 \n
或者空格, 如何避免?
通用做法
import sys
sys.stdout.write('.')
你也可以调用
sys.stdout.flush()
来确保 stdout
立即刷新
Python 2.6+
在 Python2.6 里你可以引入 Python3 的 print
函数:
from __future__ import print_function
这样可以用 Python3 来解决上面的问题
Python3
在 Python3 中, print
语句变成了函数.在 Python3 中你可以:
print('.', end='')
在 Python2 中也可以, 确保你引入 from __future__ import print_function
.
如果你在缓冲遇到了麻烦, 你可以在后面加上 flush=True
参数:
print('.', end='', flush=True)
注意 flush
关键字在 Python2 里引入 __future__
后并不生效;它只在 Python3 里, 更精确的说是 3.3 或以上.在老版本里你需要手动调用 sys.stdout.flush()
.