当前位置: 首页 > 知识库问答 >
问题:

如何在python中水平打印“紧密”点?

郁吉星
2023-03-14

我有一个程序,可以将其进度打印到控制台。每20步,它就会打印出步数,如10、20、30等。但在此范围内,它会打印一个点。这是使用末尾带有逗号的print语句打印的(python 2.x)

        if epoch % 10 == 0:
            print epoch,
        else:
            print ".",

不幸的是,我注意到这些点是分开打印的,就像这样:

0 . . . . . . . . . 10 . . . . . . . . . 20 . . . . . . . . . 30

我希望这个更紧,如下所示:

0.........10.........20.........30

在visual basic语言中,如果在print语句的末尾添加分号而不是逗号,则可以得到此表单。在Python中是否有类似的方法,或者通过演练获得更紧凑的输出?

注:

非常感谢和尊重所有回复者,我注意到他们中的一些人认为“纪元”的变化是及时发生的。实际上,事实并非如此,因为它发生在完成一些迭代之后,可能需要几分之一秒到几分钟的时间。

共有3个答案

廉实
2023-03-14

以下是一个可能的解决方案:

import time
import sys

width = 101

for i in xrange(width):
    time.sleep(0.001)
    if i % 10 == 0:
        sys.stdout.write(str(i))
        sys.stdout.flush()
    else:
        sys.stdout.write(".")
        sys.stdout.flush()

sys.stdout.write("\n")
公孙宗清
2023-03-14
import itertools
import sys
import time


counter = itertools.count()


def special_print(value):
    sys.stdout.write(value)
    sys.stdout.flush()


while True:
    time.sleep(0.1)
    i = next(counter)
    if i % 10 == 0:
        special_print(str(i))
    else:
        special_print('.')
关飞翔
2023-03-14

如果要对格式进行更多控制,则需要使用以下任一选项:

import sys
sys.stdout.write('.')
sys.stdout.flush()  # otherwise won't show until some newline printed

.. 不要打印,也可以使用Python 3打印函数。这将在Python 2的后续版本中作为将来的导入提供。x组件:

from __future__ import print_function
print('.', end='')

在Python 3中,可以传递关键字参数flush:

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

这与上面的sys.stdout两行具有相同的效果。

 类似资料:
  • 问题内容: 我需要打印以下代码: 像这样水平打印而不是垂直打印: 至 我不确定该如何做,会有一些帮助。谢谢 问题答案: 两种选择: 累加一个结果字符串,最后是: 或者告诉Python不要用换行符结束打印的字符串。在您似乎正在使用的Python 3中,您可以通过设置函数的参数(默认情况下为(换行符))来实现此目的: 历史记录:在Python 2中,可以通过在语句末尾添加逗号来实现。

  • 我使用Jaspersoft Studio 6.3.1.final来设计一个包含表格和其他元素的报告。 设计如下所示。该表只有列标题和详细信息部分。 现在垂直打印字段,如下所示: 但我需要的是像这样水平展示它们: 我在网上搜索,没有找到任何运气。 有办法做到这一点吗?我被困在这里了。非常感谢您的帮助! 编辑: 这就是我将数据传递到报表的方式(使用现有的Java服务生成JRBeanDig

  • 我需要打印一个直方图,如下所示: }//结束直方图

  • 问题内容: 我正在使用matplotlib / pylab Python模块创建非常简单的图表。标记Y轴的字母“ y”在其侧面。如果标签较长(例如单词),则不会出现这种情况,以免将图形的外部扩展到左侧过多。但是对于一个字母的标签,这没有意义,标签应该是直立的。我的搜索空白。如何水平打印“ y”? 问题答案: 这很简单。绘制标签后,您可以简单地更改旋转角度: 或者,您可以将旋转作为参数传递,即

  • 问题内容: 我知道python中的\ xb函数,但是它似乎对我不起作用。我知道我可能需要下载第三方模块来完成此任务,如果是这样,哪一个最好? 我目前正在编写一个二项式展开求解器,以尝试和使用我自学的技能。当我尝试显示用户输入的扩展用于确认时,就会出现问题。目前,我必须像这样打印表达式: 这将打印(2x4)^ 5,而我希望将索引打印为上标。如何才能做到这一点? 问题答案: 您可以使用为您执行必要格式

  • 问题内容: 我有一个Python 3脚本,它将在一些RTF文本文件()上做一些正则表达式替换,并且我希望能够在Windows,Linux和Mac上打印出整个目录的文件。 有没有一种方法可以打印到操作系统的默认打印机,从而使其在所有平台上均可工作? 问题答案: 没有跨平台的方式。在Linux和OS X上,您可以通过调用,而CUPS将尽可能地更好地处理文档转换,但是Windows比较麻烦。