Python列表匹配问题求助:输入合法姓名未触发正确输出
问题分析与解决方案
你的代码核心问题是判断逻辑错误:你用整个列表names和输入的单个字符串name做相等比较(names == name),一个列表和单个字符串永远不可能相等,所以无论输入什么内容,都会执行else分支。
修正后的代码
names = ["Terry", "Ben", "Mike"] name = input("oya enter name ") if name in names: print("Welcome " + name) else: print("Who are you???!!!")
额外优化(可选)
如果想让判断不区分大小写(比如用户输入terry或TERRY也能匹配成功),可以对输入的姓名做标准化处理:
names = ["Terry", "Ben", "Mike"] # 先去除输入首尾空格,再统一为首字母大写格式 name = input("oya enter name ").strip().capitalize() if name in names: print("Welcome " + name) else: print("Who are you???!!!")
内容的提问来源于stack exchange,提问作者T1OG
相关产品推荐
相关产品推荐

