Python 动画文本功能仅适用于某些字符串

Python 动画文本功能仅适用于某些字符串,python,function,variables,Python,Function,Variables,我正在尝试制作一个函数,用Python显示动画文本 import sys def anitext(str): for char in str: sys.stdout.write(char) time.sleep(textspeed) print ("") 此函数适用于字符串,例如 anitext ("String") 对于单独的变量,例如 name = ("Stack") anitext (name) 但不适用于输入语句,或像

我正在尝试制作一个函数,用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

您只需要使用参数解包。请参见官方Python教程中的

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
类型。这会让你的代码读起来很混乱,也会导致一些微妙的错误