如何将sleep插入列表中

时间:2016-10-13 22:29:35

标签: python sleep

我希望创建一个小模块来实现文本滚动功能。到目前为止,我已经尝试了一些事情,这就是我所坐的:

from time import sleep

def text_scroll(x):
    x = x.split()
    #here is where I'd like to add the sleep function
    x = " ".join(x)

print x

text_scroll("hello world.")

有了这一切,我希望能打印出来#34;你好",睡一会儿,#34;世界"。到目前为止我得到的最好的是它返回None而不是实际暂停。

3 个答案:

答案 0 :(得分:2)

请尝试以下代码:

from time import sleep
from sys import stdout

def text_scroll(text):
    words = text.split()
    for w in words:
        print w,
        stdout.flush()
        sleep(1)

打印结束时的逗号不会添加新行'\ n'。 flush()函数将单词刷入屏幕(标准输出)。

答案 1 :(得分:0)

如果是python 2.7,你可以执行以下操作,这就是火山建议的。

from time import sleep

def text_scroll(x):
    for word in x.split():
        print word,
        sleep(1)

text_scroll("Hello world")

这是有效的,因为它将输入分成单个单词然后打印它们,在每个单词之间休眠。 print word,是用于打印word的python 2.7,没有换行符,

由于以下几个原因,你的工作不起作用:

def text_scroll(x):
    x = x.split()
    #here is where I'd like to add the sleep function
    x = " ".join(x)

这个函数对它所做的变量没有任何作用,它会破坏它:

def text_scroll(x):
    x = x.split()                 # x = ["Hello", "world"]
    #here is where I'd like to add the sleep function
    x = " ".join(x)               # x = "Hello world"

它实际上并没有对结果做任何事情,所以它被扔掉了。但同样重要的是要认识到因为它是def,所以它在被调用之前不会执行。

当您print x时,x尚未设置,因此它应该为您提供NameError: name 'x' is not defined

最后,你调用你的函数text_scroll("hello world."),它不输出任何东西,它就完成了。

答案 2 :(得分:-2)

for word in x.split():
    print word,
    time.sleep(1)

逗号阻止打印向您的输出添加换行