Python奇偶判断程序问题求助:输入超限后无输出
问题分析与解决
问题根源
你的代码存在几个关键问题:
wrong_number_choosing_1函数中,输入正确范围的数字后,直接调用number_choosing_2要求重新输入,而非对当前输入的正确数字做奇偶判断,导致该数字被忽略,无输出。- 多函数递归调用逻辑混乱,流程跳转没有闭环,出现输入正确后程序直接终止的情况。
- 条件判断重复冗余,多次重复范围检查,增加了代码复杂度和出错概率。
修正后的简洁代码
print("welcome to our simple test") def check_odd_even(): while True: try: number = int(input("please enter a number between 0 and 100: ")) if 0 <= number <= 100: if number % 2 == 0: print("the number you have entered is even") else: print("you have entered an odd number") break # 完成判断后退出循环 else: print("you have entered a number more than 100 or less than 0!") except ValueError: print("please enter a valid integer!") check_odd_even()
代码说明
- 用
while True循环持续获取输入,直到输入符合要求。 - 加入
try-except捕获非整数输入的异常,避免程序崩溃。 - 先验证输入范围,符合条件后再判断奇偶,逻辑清晰闭环。
保留原函数结构的修复方案
如果想保留多函数结构,需修正wrong_number_choosing_1的逻辑,确保正确输入后直接判断奇偶:
print("welcome to our simple test") def judge_parity(number): if number % 2 == 0: print("the number you have entered is even ") else: print("you have entered an odd number ") def get_valid_number(): while True: try: number = int(input("please enter a number between 0 and 100: ")) if 0 <= number <= 100: return number else: print("you have entered a number more than 100 or less than 0!") number = int(input("so please enter a number between 0 and 100: ")) if 0 <= number <= 100: return number except ValueError: print("please enter a valid integer!") def main(): num = get_valid_number() judge_parity(num) main()
内容的提问来源于stack exchange,提问作者miaadamateur
相关产品推荐
相关产品推荐

