相关疑难解决方法(0)

为什么`print`内容不能在终端中立即显示?

我有一个用于仿真的python脚本,一个for循环要花很长时间,每个循环要花不同的时间,因此我.在每个循环后打印一个,以监视它运行的速度和经过的时间。for脚本运行时的声明。

for something:
    do something
    print '.',
Run Code Online (Sandbox Code Playgroud)

但是,当我在终端中的iPython中运行脚本时,点并不会一一打印,而是在循环结束时一次打印所有点,这使整个过程变得毫无意义。如何在运行时内联打印点?

python macos terminal ipython

5
推荐指数
1
解决办法
7405
查看次数

python中time.sleep的奇怪打印行为

我试图通过在同一行上每秒打印一个点来创建类似进度的东西.像"钓鱼......"之类的东西.这是我用过的:

import time

print('Fishing', end='')
for i in range(5):
    time.sleep(1)
    print('.', end='')
Run Code Online (Sandbox Code Playgroud)

但它会等待5秒钟并立即打印Fishing.....所有内容.但是当我不使用时end='',它每秒打印一次点,但是在这样的单独行上

Fishing.
.
.
.
.
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 为什么print这样做?
  2. 如何每秒打印一个点,但在同一行?

python sleep

4
推荐指数
1
解决办法
345
查看次数

Python sleep() 禁止用逗号打印?

如果我想使用带有逗号 (2.6) 的打印,只要您不使用 time.sleep(),它就可以正常工作。

如果使用带有逗号的打印,然后调用睡眠;如果您处于循环中,则字符串永远不会打印。

例子:

a=1
b=10
while a<b:
    print "yes",
    a=a+1
Run Code Online (Sandbox Code Playgroud)

这有效,您将看到 yes 打印在同一行上 10 次。但这行不通。

a=1
b=10
while a<b:
    print "yes",
    time.sleep(1)
    a=a+1
Run Code Online (Sandbox Code Playgroud)

期望是会打印yes;然后等待一秒钟,然后将打印下一个是。相反,您会看到 10 秒后打印出一串 10 yes。

如果您使用 while 循环,情况也是如此;只要循环正在运行,并且您有一个 sleep 语句,字符串就不会打印到最后。

要使其工作,请删除逗号。如果您想指定要在每个字符串之间等待多长时间,则无法在同一行上打印字符串。

这是打印功能中的错误吗?

python python-2.7

2
推荐指数
1
解决办法
822
查看次数

标签 统计

python ×3

ipython ×1

macos ×1

python-2.7 ×1

sleep ×1

terminal ×1