我可以在python 3的字符串中添加时间延迟吗?

时间:2018-08-09 14:07:34

标签: python python-3.x time python-multithreading

我知道我们可以循环打印一行,一行之后可以添加诸如time.sleep(0.5)之类的内容。但是我想从内置了延时功能的函数返回一个字符串。

例如

s = 'I love my dog' + sleep(0.5) + 'I also love my cat'
print(s)

这将打印“我爱我的狗”,并在0.5秒后打印“我也爱我的猫”。

3 个答案:

答案 0 :(得分:0)

从空闲状态开始:

>>> import time
>>> time.sleep(0.5)
>>> s = "asdf" + time.sleep(0.5) + "asdf"
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    s = "asdf" + time.sleep(0.5) + "asdf"
TypeError: can only concatenate str (not "NoneType") to str

因此,简而言之,不是那样。但是,以下工作方式是返回(种类)是单个项目:

>>> x = (print("asdf"), time.sleep(0.5), print("asdf"))
asdf
asdf
>>> x
(None, None, None)
>>> 

更好的方法可能是返回(list of strings, time interval)元组,该元组可以传递给另一个函数进行打印。

答案 1 :(得分:0)

虽然这不是您真正想要的,但这可能是您正在寻找的效果:

from time import sleep

s1 = 'I love my dog'
s2 = ' I also love my cat'

print(s1, end='', flush=True)
sleep(2)
print(s2)

这将使两个句子位于同一行,是2秒延迟之后的第二个句子。

答案 2 :(得分:0)

Python类型编写器效果

对于字符串中的每个字母,我的答案将等待0.1秒,因此文本将一个接一个地显示。代码:

def anything(str):
for letter in str:
    sys.stdout.write(letter)
    sys.stdout.flush()
    time.sleep(0.1)
anything("Blah Blah Blah...")