如何在输入有效月份数字后高效终止Python循环?
解决方法
要实现输入有效月份数字后干净终止循环,核心是在匹配到有效输入时使用break语句跳出while循环。同时可以通过列表映射简化冗余的if-elif判断,让代码更简洁易维护。
方法一:直接在有效分支添加break(新手友好)
修改后的代码如下:
while True: month_num = int(input("请输入月份数字: ")) if month_num == 1: print("January") break elif month_num == 2: print("February") break elif month_num == 3: print("March") break elif month_num == 4: print("April") break elif month_num == 5: print("May") break elif month_num == 6: print("June") break elif month_num == 7: print("July") break elif month_num == 8: print("August") break elif month_num == 9: print("September") break elif month_num == 10: print("October") break elif month_num == 11: print("November") break elif month_num == 12: print("December") break else: print("请输入有效的数字(1-12)")
每次匹配到有效月份时,输出名称后执行break,直接终止循环,达到输入有效数字后退出的效果。
方法二:用列表简化代码(更高效的写法)
把月份名称存入列表,利用数字和索引的对应关系(列表索引从0开始,因此预留索引0为空字符串,让数字1-12直接对应索引1-12),大幅简化代码:
months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] while True: month_num = int(input("请输入月份数字: ")) if 1 <= month_num <= 12: print(months[month_num]) break # 有效输入,终止循环 else: print("请输入有效的数字(1-12)")
这种写法既解决了循环终止问题,又让代码结构更清晰,后续维护月份名称也只需修改列表即可。
内容的提问来源于stack exchange,提问作者saif
相关产品推荐
相关产品推荐

