我知道我们可以循环打印一行,一行之后可以添加诸如time.sleep(0.5)之类的内容。但是我想从内置了延时功能的函数返回一个字符串。
例如
s = 'I love my dog' + sleep(0.5) + 'I also love my cat'
print(s)
这将打印“我爱我的狗”,并在0.5秒后打印“我也爱我的猫”。
答案 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)
对于字符串中的每个字母,我的答案将等待0.1秒,因此文本将一个接一个地显示。代码:
def anything(str):
for letter in str:
sys.stdout.write(letter)
sys.stdout.flush()
time.sleep(0.1)
anything("Blah Blah Blah...")