如何在Python中验证输入是否属于指定服务列表?
解决输入验证问题:检查输入是否属于指定服务列表
你的代码有两个关键问题导致无法正确判断输入是否有效:
- 你把输入的字符串和整个
services列表做相等判断(hotel_services == services),这永远不会成立——一个字符串不可能等于一个列表 - 你用了不必要的
try-except块,str(input())不会抛出ValueError,所以输入错误时根本触发不了"Invalid"提示
修正后的代码如下:
while True: services = ['Conference','Dinner','Lodging','Membership Renewal'] # 直接遍历列表打印服务项,比用索引更简洁 for service in services: print(f"{service : <14}") # 去除输入首尾空格,避免用户误输入空格导致验证失败 hotel_services = input("Enter the hotel services: ").strip() # 检查输入是否在服务列表中 if hotel_services in services: print("Valid") break # 验证通过,退出循环 else: print("Invalid") print("Try Again")
修改说明:
- 用
hotel_services in services替代原有的相等判断,正确验证输入是否属于指定服务 - 移除无用的
try-except结构,直接通过条件分支处理有效/无效输入 - 给输入加上
.strip(),处理用户输入时的首尾空格问题,避免因为空格导致的误判 - 简化服务列表的打印逻辑,直接遍历列表元素,代码更易读
内容的提问来源于stack exchange,提问作者Allixar
相关产品推荐
相关产品推荐

