Python新手如何实现重复输入笑话编号展示对应笑话的功能
Python笑话查询应用循环功能实现方案
实现思路
用while True构造无限循环实现持续接收用户查询需求,额外增加主动退出逻辑,避免程序无法正常关闭,同时增加输入合法性校验避免运行报错。
推荐实现代码(易维护)
先把a1-a10的笑话变量整合为字典,不需要写大量重复的判断语句:
# 此处保留你原有a1到a10的笑话变量定义即可 a1 = "冷笑话1:什么动物最容易摔倒? 狐狸,因为它狡猾(脚滑)" a2 = "冷笑话2:......" # a3到a9按你原有内容补充 a10 = "冷笑话10:......" # 构造编号和笑话的映射字典 joke_map = {str(i): globals()[f"a{i}"] for i in range(1, 11)} print("=== 笑话查询工具 ===") print("输入1-10查询对应笑话,输入q可退出程序") while True: input_content = input("\n请输入笑话编号:").strip() # 退出逻辑 if input_content == "q": print("程序已退出") break # 输入合法性校验 if input_content not in joke_map: print("输入无效,请输入1-10范围内的数字,或输入q退出") continue # 输出对应笑话 print(joke_map[input_content])
兼容原有写法的实现方案
如果你不想修改原有判断逻辑,直接把你现有的查询代码套进while True循环里即可:
# 保留你原有a1到a10的定义和查询判断逻辑 a1 = "..." a2 = "..." # ...其余变量定义 print("=== 笑话查询工具 ===") print("输入1-10查询对应笑话,输入q可退出程序") while True: num = input("\n请输入笑话编号:").strip() if num == "q": print("程序已退出") break if num == "1": print(a1) elif num == "2": print(a2) # 原有elif num == "3" 到 num == "10"的判断逻辑保持不变 else: print("输入的编号不存在,请输入1-10范围内的数字")
内容的提问来源于stack exchange,提问作者DolbykD
相关产品推荐
相关产品推荐

