我正在尝试创建一个在Python中显示动画文本的函数
import sys
def anitext(str):
for char in str:
sys.stdout.write(char)
time.sleep(textspeed)
print ("")
此功能适用于
等字符串anitext ("String")
对于唯一的变量,如
name = ("Stack")
anitext (name)
但不适用于输入语句或连接语句,如
anitext (name, "This is a string")
这个“Anitext”函数有没有办法处理不仅仅是普通字符串的语句?
- Olli E
答案 0 :(得分:1)
你只需要使用参数解包。请参阅官方Python教程中的Arbitrary Argument Lists。
import sys
import time
textspeed = 0.2
def anitext(*args):
for s in args:
for char in s:
sys.stdout.write(char)
sys.stdout.flush()
time.sleep(textspeed)
print("")
anitext("String", "Another string", "More stuff")
我对您的脚本进行了其他一些更改。 sys.stdout.flush()
调用确保实际上一次打印一个字符;大多数终端都会缓冲整行文本,所以你实际上看不到动画的发生。
另外,我使用s
作为当前动画字符串的名称。您不应该使用str
作为变量名称,因为它会影响内置str
类型。这使得您的代码难以阅读,也可能导致细微的错误。