Python下雨判断代码输入no仍输出使用雨伞问题排查
错误原因
- 未存储用户输入:
str(input("Is it raining: "))执行后没有赋值给变量,后续判断完全没有用到用户输入的内容,且input本身返回字符串,外层的str()转换属于多余操作。 - 条件判断逻辑失效:Python中非空字符串的布尔值为
True,if("Yes" or "yes")这个表达式会直接返回常量"Yes",永远为真,所以第一个分支会始终触发,不管用户输入什么都会输出Use Umbrella,不会走到后续判断分支。
修复代码
需要先存储用户输入,再将输入值与目标字符串做等值判断,也可以通过lower()方法统一转小写简化多大小写匹配的逻辑:
# 存储用户输入,strip()去除首尾多余空格 rain = input("Is it raining: ").strip() if rain.lower() == "yes": print("Use Umbrella") elif rain.lower() == "no": print("No need of Umbrella") else: print("Invalid option")
内容的提问来源于stack exchange,提问作者Saureet。
相关产品推荐
相关产品推荐

