如何实现用户输入Done/None后打印飞机偏好列表的功能?
修正后的飞机喜好输入程序
原代码的问题:
input函数的字符串直接换行会触发语法错误,Python不允许普通字符串内直接换行- 判断输入是否为"None"类选项时,用
==和元组比较永远不成立,应该用in检查输入是否在目标值集合里 elif Planes.append(Plane)逻辑完全错误:append方法返回None,这个分支永远不会触发,且添加元素的逻辑不该放在条件判断里else分支里的Plane == ("Done")是无效的比较语句,不是判断逻辑,且整体判断顺序颠倒,应该先处理"Done"终止输入的情况
修正后的代码:
favorite_planes = [] # 初始化空列表存储喜好飞机 while True: # 修正输入语句的语法问题,优化提示语让用户明确操作规则 plane_input = input("请输入你喜爱的飞机(输入Done结束输入,输入None表示没有喜爱的飞机):") # 先处理"无喜好"的终止输入 if plane_input in ("None", "I have none", "What's a plane?"): print("用户没有喜爱的飞机。") break # 再处理"结束输入"的请求 elif plane_input == "Done": print("你喜爱的飞机列表:", favorite_planes) break # 其余有效输入添加到列表并反馈当前状态 else: favorite_planes.append(plane_input) print(f"已添加:{plane_input},当前列表:{favorite_planes}")
逻辑说明:
- 调整判断顺序:先处理两类终止输入(无喜好/结束输入),再处理添加元素的逻辑,符合正常交互流程
- 用
in实现多值匹配,解决原代码的比较错误 - 修正
input语句的语法问题,同时通过提示语明确告知用户操作规则 - 移除无效的比较语句,将添加元素的逻辑放在合理分支,确保每一次有效输入都能正确存入列表
内容的提问来源于stack exchange,提问作者RisingLoaf
相关产品推荐
相关产品推荐

