Python中使用while循环输出偶数时遭遇无限循环问题求助
问题分析与修复
你的代码存在两个核心问题:
- 逻辑偏离需求:你只判断了输入的
num是否为偶数,然后仅打印num本身,没有遍历输出所有小于等于num的正偶数 - 无限循环诱因:当输入奇数时,
if num % 2 == 0条件不成立,i始终保持初始值0,while num >= i的条件永远为真,导致程序无限循环
修复后的代码
num = int(input("Please enter a number: ")) i = 2 # 从第一个正偶数开始 result = [] while i <= num: result.append(str(i)) i += 2 # 每次步长为2,保证下一个数也是偶数 print(", ".join(result))
代码说明
- 初始化
i为2,这是最小的正偶数 - 循环条件
i <= num确保只处理小于等于输入值的数 - 每次循环
i += 2,直接跳到下一个偶数,无需额外判断奇偶性 - 用列表收集结果最后统一打印,保证输出格式是
2, 4, 6这样的逗号分隔形式
如果输入的数字小于2(比如1),程序会输出空字符串,符合“无正偶数”的逻辑。
内容的提问来源于stack exchange,提问作者Brett Painter
相关产品推荐
相关产品推荐

