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().