【问题标题】:Is using time.sleep inside a print() possible?可以在 print() 中使用 time.sleep 吗?
【发布时间】:2020-07-05 12:49:00
【问题描述】:

我想做一个 . .. ... 显示 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.x time timer


【解决方案1】:

很遗憾,您的方法行不通。 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 在打印后将光标返回到行首,以便下次需要打印。

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

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

【讨论】:

  • 非常感谢艾伦。我非常感谢您冗长且解释清楚的答案。我希望如果我有其他问题可以与您联系。祝你有美好的一天。
猜你喜欢
  • 2014-03-26
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 2018-03-08
相关资源
最近更新 更多