Python如何实现输入数字后输出对应选中汽车品牌的反馈语句
原代码问题梳理
- 类型不匹配:
answer转换为int类型后,直接和字符串类型的options[0]做等值判断,条件永远不成立 - 匹配逻辑错误:遍历判断逻辑写死了对比对象为
options[0],无法匹配其他编号对应的汽车品牌 - 输出内容错误:触发判断后直接打印整个
options列表,没有提取用户选中的单个品牌
可正常运行的修改后代码
options = ["1. Hyundai", "2. Benz", "3. BMW", "4. Honda", "5. Toyota", "6. GMC", "7. Cadillac", "0.Exit"] # 打印所有选项 for i in options: print(i) answer = int(input("choose a number from the list above ")) # 先判断退出逻辑 if answer == 0: print("Goodbye") # 判断编号是否在合法可选范围内 elif 1 <= answer <= len(options) - 1: # 提取品牌名称,去掉前缀的编号、点和空格 selected_car = options[answer - 1].split('. ', 1)[1] print(f"{selected_car} is a nice car") # 新增非法输入提示 else: print("请输入合法的编号")
修改说明
- 删掉了冗余的遍历循环,直接用用户输入的编号计算对应列表索引,运行效率更高
- 新增了非法输入的容错逻辑,避免输入超出范围的数字时出现索引越界报错
- 用
split方法拆分字符串,提取出纯品牌名称输出,符合预期效果
内容的提问来源于stack exchange,提问作者Madjid Sahraoui
相关产品推荐
相关产品推荐

