Python-如何在没有换行符或空格的情况下进行打印?

发布于 2021-02-02 23:24:42

我想用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

关注者
0
被浏览
257
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    在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中导入flushprint函数的版本中,该关键字不可用__future__。它仅适用于Python 3,更具体地说是3.3及更高版本。在早期版本中,你仍然需要通过调用进行手动刷新sys.stdout.flush()。你还必须在执行此导入操作的文件中重写所有其他打印语句。

    或者你可以使用 sys.stdout.write()

    import sys
    sys.stdout.write('.')
    

    你可能还需要致电

    sys.stdout.flush()
    

    确保stdout立即冲洗。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看