Python中if/else语句匹配列表元素失效问题求助
问题排查与解决
你的代码核心问题是字符串和列表的比较逻辑错误:user_answer是用户输入的单个字符串,而你用==将它和包含多个字符串的列表male/female做比较,字符串和列表永远不可能相等,所以无论输入什么都会进入else分支。
修正后的代码
把判断条件里的==改成in,检查输入的字符串是否存在于对应列表中:
user_answer = input("are you a male, or a female?:") male = ["male", "Male", "MALE"] female = ["female", "Female", "FEMALE"] if user_answer in male: print("oh well thats awesome to hear! hello sir!") elif user_answer in female: print("oh sick, nice to meet you miss") else: print("im sorry, but that is not a valid entry")
更简洁的优化方案
可以把用户输入统一转为小写(同时去掉前后空格),这样不需要枚举所有大小写情况,代码更简洁鲁棒:
user_answer = input("are you a male, or a female?:").strip().lower() if user_answer == "male": print("oh well thats awesome to hear! hello sir!") elif user_answer == "female": print("oh sick, nice to meet you miss") else: print("im sorry, but that is not a valid entry")
内容的提问来源于stack exchange,提问作者Robert Gibbons
相关产品推荐
相关产品推荐

