如何在Python打字函数中支持数字参数并添加参数间空格?
解决方案
修改后的代码
import sys import time def type(*text): for idx, item in enumerate(text): # 将每个参数转为字符串,兼容数字等非字符串类型 s = str(item) # 逐个输出字符 for char in s: sys.stdout.write(char) sys.stdout.flush() time.sleep(0.05) # 非最后一个参数后添加空格 if idx != len(text) - 1: sys.stdout.write(' ') sys.stdout.flush() time.sleep(0.05) print()
关键修改说明
- 支持数字参数:对每个传入的参数单独调用
str()转换,整数、浮点数等类型会被转为对应的纯字符串形式(比如123转为"123"),不会出现括号或单引号。之前的问题是误将整个参数元组直接转为字符串(比如str(text)),而非逐个处理每个参数。 - 修复参数间无空格问题:通过
enumerate获取参数索引,判断当前参数是否为最后一个,若非最后一个则输出空格,并保持和字符一致的延迟,维持打字机的连贯效果。
使用示例
name = "Alice" type("Hello", name, 2024) # 会按打字机效果输出:Hello Alice 2024
内容的提问来源于stack exchange,提问作者Euler
相关产品推荐
相关产品推荐

