首页 > 解决方案 > 可以在 print() 中使用 time.sleep 吗?

问题描述

我想做一个 . .. ... 显示 Programm 的东西是“思考”。

于是我想出了一个主意:

import time

print(".", time.sleep(x), ".", time.sleep(x), ".")

但是当然没有用。

正在做:

import time

time.sleep(0.8)
print(".")
time.sleep(0.8)
print("..")
time.sleep(0.8)
print("...")
time.sleep(0.8)

将所有点放在一起。

有谁知道它是如何工作的?

先感谢您。

标签: python-3.xtimetimer

解决方案


不幸的是,您的方法行不通。print 语句中的逗号分隔值不允许新的逻辑;他们只是告诉 python 打印空格分隔的字符串。为此,您需要稍微使用一下 print 语句参数。

代码是:

import time

i = 1
while i < 4:
    dots = '.'*i
    print("\r{}".format(dots), flush=True, end='')
    time.sleep(1)
    i += 1

您不一定需要 while 循环,但要了解 print 语句中发生的事情。您必须在字符串的开头包含“\r”,即回车符。这告诉 Python 在打印后将光标返回到行首,以便下次需要打印。

在 print 函数的参数中,使用“end=''”,它告诉 python 以空字符串结尾。默认情况下,打印语句以换行符结尾,这是不受欢迎的行为。

最后,“flush=True”告诉 Python 删除需要打印的内容之前的任何内容。这是必要的,因为您将使用回车符转到开头。


推荐阅读