python - 创建一个程序来询问一个数字并打印所有除数

标签 python python-3.x list conditional-statements

下面是我的代码:

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”的余数为零,那么它应该被追加到列表中。不确定我的逻辑在哪里以及为什么错误。

最佳答案

  1. 您只打印 i,而是需要在循环结束时打印完整列表。
  2. 您仅针对除数在 [1, 100) 范围内进行迭代,但是,要使用这种简单的方法找到所有除数,理想情况下您需要在 范围内进行迭代[1,数字)。例如,1000 是 2000 的约数,但您的方法可能会忽略这种情况。
  3. 您可以使用 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/

相关文章:

python - 如何提取字符串中的最后一组括号

python - 在使用 python 脚本导入 postgres 之前,如何在 csv 文件中划分单元格?

python - 有没有办法在 python 列表中切换元素?

linq - 如何使两个以上的值集/列表相交?

python - 给定一个列表和一个位掩码,我如何返回 True 索引处的值?

python - 根据自定义分隔符反转字符串

Python 和类属性声明

python - 在给定列表中创建重复元素的新列表

python - 将一个数据帧的列乘以另一个数据帧的值,由键确定

c++ - 链接列表中的频率