Python如何根据用户输入的索引编号从列表中选取对应字符串
功能实现解决方案
核心问题原因
- Python中
input()函数的返回值默认为字符串类型,而列表索引必须使用整数,所以直接将输入值作为索引调用会触发类型报错。
最简修正代码
仅需将用户输入显式转换为整数即可实现基础功能:
facilities = ['facility a', 'facility b', 'facility c'] for count, value in enumerate(facilities): print(count, value) # 直接展示编号和对应设施,用户更易读 # 将输入转换为整数类型 f = int(input('请输入你要选择的设施对应编号: ')) final_facility = facilities[f] print(final_facility)
健壮性优化版本
上述最简代码遇到用户输入非数字、或编号超出列表范围时会报错,可增加异常校验提升可用性:
facilities = ['facility a', 'facility b', 'facility c'] # 展示可选列表 for count, value in enumerate(facilities): print(f"编号{count}:{value}") while True: input_content = input('请输入你要选择的设施对应编号: ') # 校验是否为数字 if not input_content.isdigit(): print("输入无效,请输入纯数字编号") continue # 转换为整数 select_idx = int(input_content) # 校验编号是否在有效范围内 if 0 <= select_idx < len(facilities): break else: print(f"编号超出范围,请输入0到{len(facilities)-1}之间的数字") final_facility = facilities[select_idx] print(f"你选择的设施是:{final_facility}")
内容的提问来源于stack exchange,提问作者tenebris silentio
相关产品推荐
相关产品推荐

