我希望创建一个小模块来实现文本滚动功能。到目前为止,我已经尝试了一些事情,这就是我所坐的:
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而不是实际暂停。
答案 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)
逗号阻止打印向您的输出添加换行