下面是我的代码:
num= int(input("Please enter number"))
lista= []
for i in range(1,100):
if num%i ==0:
lista.append(i)
print(i)
但是当我运行相同的命令时,我得到以下输出:
Please enter number24
99
Process finished with exit code 0
根据上面的逻辑,我的理解是,由于给定的范围,循环将迭代99次,如果“i”的余数为零,那么它应该被追加到列表中。不确定我的逻辑在哪里以及为什么错误。
最佳答案
- 您只打印
i
,而是需要在循环结束时打印完整列表。 - 您仅针对除数在
[1, 100)
范围内进行迭代,但是,要使用这种简单的方法找到所有除数,理想情况下您需要在范围内进行迭代[1,数字)
。例如,1000 是 2000 的约数,但您的方法可能会忽略这种情况。 - 您可以使用
list_divisors
作为变量名称,而不是lista
,因为它更具可读性。
所以你的代码变成:
num = int(input("Please enter number"))
list_divisors = []
for i in range(1, num):
if num % i ==0:
list_divisors.append(i)
print(list_divisors)
关于python - 创建一个程序来询问一个数字并打印所有除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678112/