Python中如何将数组内的选项展示在input输入提示中?
问题原因
Python内置的input()函数仅支持传入1个字符串类型的提示参数,你传入第二个列表参数属于语法错误,自然会运行报错。
最简实现方案
用字符串的join()方法把武器列表拼接为逗号分隔的字符串,再和提示语拼接后传给input()即可,不需要重复写列表内容:
dnd_weapons = ["club", "great axe", "longbow", "hand crossbow"] # 拼接提示语 prompt = f"What weapon would you like to select? {', '.join(dnd_weapons)}" user_weapon = input(prompt)
运行后终端显示的效果和你期望的完全一致。
优化可选:增加输入合法性校验
可以加循环判断,用户输入的内容不在可选列表中时提示重新输入,避免非法输入影响后续逻辑:
dnd_weapons = ["club", "great axe", "longbow", "hand crossbow"] prompt = f"What weapon would you like to select? {', '.join(dnd_weapons)}" while True: user_weapon = input(prompt).strip() if user_weapon in dnd_weapons: break print(f"输入无效,请从以下选项中选择:{', '.join(dnd_weapons)}") # 校验通过后执行后续函数
内容的提问来源于stack exchange,提问作者Maykid
相关产品推荐
相关产品推荐

