如何在Python的input()函数中实现打字机效果?解决None显示问题
问题原因及解决办法
原因分析
你的typewriter函数未定义返回值,Python中未指定返回值的函数默认返回None。当你执行input(typewriter("Enter preferred codename: "))时,input()会先运行typewriter输出提示文本,随后将typewriter返回的None当作提示语的一部分显示,因此末尾会出现None。
解决办法
方法1:拆分调用(推荐)
先调用typewriter输出提示内容,再单独调用input()获取用户输入:
# -----Typewriter Template----- import time, sys, os from random import uniform def typewriter(str): for letter in str: sys.stdout.write(letter) sys.stdout.flush() time.sleep(uniform(0, 0.2)) # 先输出打字机效果的提示语 typewriter("Enter preferred codename: ") # 再获取用户输入 code_name = input()
方法2:修改typewriter函数返回原字符串
让typewriter在完成输出后返回传入的文本,这样input()接收到的是原提示字符串而非None:
# -----Typewriter Template----- import time, sys, os from random import uniform def typewriter(str): for letter in str: sys.stdout.write(letter) sys.stdout.flush() time.sleep(uniform(0, 0.2)) # 添加返回语句,返回传入的字符串 return str # 调用后不会显示None code_name = input(typewriter("Enter preferred codename: "))
内容的提问来源于stack exchange,提问作者MaximusCodes
相关产品推荐
相关产品推荐

