Python使用while循环查找完全数代码无报错不输出问题排查
问题分析
你的代码陷入了无限循环,核心问题是i = i + 1的缩进位置错误,它被放在了if num % i == 0的判断分支内部,只有当i是num的因数时才会自增,一旦遇到不是因数的i,循环就会卡在当前的i值永远不会退出,自然不会打印后续结果。
修复方案
只要把i = i + 1调整到和if判断同级,放在while循环内部、if分支外面即可,修复后的完整代码如下:
# 使用WHILE循环查找完全数 num = int(input('输入任意正整数: ')) sum1 = 0 i = 1 if num <= 0: print('无效数字。') else: while(i < num): if num % i == 0: sum1 = sum1 + i i = i + 1 # 调整缩进到while内部、if分支外 if sum1 == num: print(num, "是完全数") else: print(num, "不是完全数")
验证说明
- 输入6,程序会输出
6 是完全数 - 输入4,程序会输出
4 不是完全数 - 输入0或者负数,会输出
无效数字。
内容的提问来源于stack exchange,提问作者Selenophile
相关产品推荐
相关产品推荐

