Python因数列表函数需求问询:实现遍历生成输入数字的因数列表
修正Python因数列表函数factorList的问题
原代码存在两处关键错误,导致无法正确生成因数列表:
- range语法错误:
range <= num不符合Python的range函数使用规则,要遍历1到num的所有整数,需使用range(1, num+1)——因为range是左闭右开区间,结束参数设为num+1才能包含num本身。 - 因数判断逻辑错误:判断i是否为num的因数,应该用取模运算
num % i == 0(取模结果为0代表i能整除num),原代码的num / i == 0逻辑完全错误,只有num为0时该条件才会成立,根本无法筛选出因数。
修正后的代码如下:
def factorList(num): listOfFactors = [] for i in range(1, num + 1): if num % i == 0: listOfFactors.append(i) print(listOfFactors) factorList(36) # 执行后输出: [1, 2, 3, 4, 6, 9, 12, 18, 36]
内容的提问来源于stack exchange,提问作者Queest
相关产品推荐
相关产品推荐

