在trinket.io用Python编写数学测验时input相关if语句运行异常
问题原因
- 核心错误为变量名误用:你通过
input()获取到的用户输入已经存储到了answer变量中,但后续判断语句里错误使用了Python内置函数名input做判断,input本身是函数对象,不可能和字符串"y"相等,因此所有判断分支都不会按预期运行。 - 分支逻辑冗余:第二个判断
elif input != ("y")可以直接替换为else,天然覆盖所有非y的场景,不需要额外做不等判断。
修正后可运行代码
print("你好,欢迎参加数学测验!") print("这是一个通过回答数学题来提升分数的小游戏 :)") print("你准备好了吗?") answer = input("请输入y/n:\n").strip().lower() if answer == "y": print("好的,测验即将开始") else: print("这不是可接受的答案 :(")
补充优化说明
- 新增
strip()方法可以自动过滤用户输入前后的空格、换行符,避免用户误输入空格导致判断失效 - 新增
lower()方法可以自动把输入转为小写,用户输入大写Y也可以正常识别 - 把提示内容改为了中文,更符合中文用户使用习惯,如果需要保留原版英文提示,替换回你原本的
print内容即可
内容的提问来源于stack exchange,提问作者user16938076
相关产品推荐
相关产品推荐

