微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么这不返回正确的除数?

如何解决为什么这不返回正确的除数?

我对 Python 和编码非常陌生。我学习了一些 Python 2,因为它是最好的免费版本:) 下面是我写的代码

num = int(input("What number would you like to check the divisors of? "))
Divisors = list(range(1,num+1))
for element in Divisors:
    if num % element != 0:
        Divisors.remove(element)
print(Divisors)

这是打印出来的:

What number would you like to check the divisors of? 12
[1,2,3,4,6,8,10,12]

解决方法

问题可能是您在迭代时修改了列表除数。 它使您的代码跳过数组中的某些元素,尝试像这样打印当前元素:

num = int(input("What number would you like to check the divisors of? "))
Divisors = list(range(1,num+1))
for element in Divisors:
    print("The current element is",element)
    if num % element != 0:
        Divisors.remove(element)

了解正在发生的事情。

,

在迭代中修改除数会产生副作用。相反,您可以使用 list comp 来获取您想要的内容。

num = int(input("What number would you like to check the divisors of? "))
Divisors = list(range(1,num+1))
Divisors = [ element for element in Divisors if num % element == 0 ]

输出:

[1,2,3,4,6,12]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。