Python使用while循环统计奇偶个数的缩进错误求解
代码问题排查与修正方案
存在的问题
- 缺少依赖导入:使用了
random模块但没有提前导入,运行会触发NameError - 循环条件逻辑反向:需求为奇数比偶数多5个时停止程序,因此循环执行的条件应为
odds - evens < 5,原代码写为>=5,初始状态下差值为0不满足循环条件,代码不会进入循环直接终止 - 缩进不合理&冗余代码:
getrandom()函数定义被放在了while循环内部,每次循环都会重复定义一次函数,且该函数定义后未被任何代码调用,属于无效代码 - 打印信息不清晰:原有打印语句仅输出计数,无法区分统计的是奇数还是偶数个数
修正后可运行代码
import random evens = 0 odds = 0 # 当奇数与偶数的差值小于5时持续运行 while odds - evens < 5: digit = random.randint(1, 99) if digit % 2 == 0: evens += 1 print(f"生成偶数:{digit},偶数累计个数:{evens}") else: odds += 1 print(f"生成奇数:{digit},奇数累计个数:{odds}") print(f"程序终止:奇数个数{odds},偶数个数{evens},奇数比偶数多{odds-evens}个")
内容的提问来源于stack exchange,提问作者ztif
相关产品推荐
相关产品推荐

