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

推荐答案

在Python 3中,您可以使用print函数的sep=end=参数:

要不在字符串末尾添加换行符,请执行以下操作:

print('.', end='')

要在所有要打印的函数参数之间不添加空格,请执行以下操作:

print('a', 'b', 'c', sep='')

可以将任何字符串传递给任一参数,并且可以同时使用这两个参数.

如果缓冲有问题,可以通过添加flush=True个关键字参数刷新输出:

print('.', end='', flush=True)

Python 2.6和2.7

在Python 2.6中,您可以使用__future__ module从Python 3导入print函数:

from __future__ import print_function

这允许您使用上面的Python 3解决方案.

但是,请注意,在Python2中从__future__导入的print函数版本中没有关键字flush;它只在Python3中有效,更具体地说是3.3和更高版本.在早期版本中,您仍然需要通过调用sys.stdout.flush()手动刷新.您还必须重写执行此导入的文件中的所有其他打印语句.

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

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

您可能还需要致电

sys.stdout.flush()

确保立即冲洗stdout.

Python相关问答推荐

学习率未更新

为什么Pydantic在我申报邮箱时说邮箱丢失

从包含基本数据描述的文本字段中识别和检索特定字符序列

我可以使用极点优化这个面向cpu的pandas代码吗?

在Transformer中使用LabelEncoding的ML模型管道

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

使用matplotlib pcolormesh,如何停止从一行绘制的磁贴连接到上下行?

按照行主要蛇扫描顺序对点列表进行排序

如何在Python中使用io.BytesIO写入现有缓冲区?

在函数内部使用eval(),将函数的输入作为字符串的一部分

通过优化空间在Python中的饼图中添加标签

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

@Property方法上的inspect.getmembers出现意外行为,引发异常

海上重叠直方图

如何在Polars中从列表中的所有 struct 中 Select 字段?

根据列值添加时区

提取相关行的最快方法—pandas

CommandeError:模块numba没有属性generated_jit''''

通过ManyToMany字段与Through在Django Admin中过滤

在Python中使用yaml渲染(多行字符串)