如何解决为什么这不返回正确的除数?
我对 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 举报,一经查实,本站将立刻删除。