我在练习Python的基础知识,我做了一个函数,要求用户输入一个数字,这个函数会返回这个数字的所有除数,所以我做了这个
def divisor_generator():
integer = raw_input("Enter a number:")
integer = int(integer)
list = []
for divisors in range(integer+1):
if divisors%integer == 0:
list.append(divisors)
print list
例如,整数50的输出是
[50, 0]
我真的很想保持简单,我不明白什么是不好的,我寻找了这么多的答案,但没有一个是在我的理解水平。为什么我的功能没有按预期工作?你知道吗
你的部门落后了。你知道吗
我想你的意思是:
这样想,如果
integer
是50,divisor
是2,按照你的方式,它会是:如果分子小于分母,则该检查将永远不会为真,除非数字相同。我总是检查自己的心理状态,以确保我不会不小心把数字倒过来。你知道吗
并且,如注释中所述,不要创建名为
list
的变量。list
是一个内置函数,隐藏它可能会在以后导致错误。你知道吗你的模是反的。你知道吗
您的示例是在需要
50 % i
时计算到i % 50
。你知道吗下面是正确的版本(我使用的是
python 3.6.1
)。您需要切换integer
和divisors
的位置。你需要从1
开始你的范围,否则你会得到division by zero
错误顺便说一句,如果你也对你的问题有一点简洁和不同的解决方案感兴趣,这里有另一个解决方案(你不一定需要它):
相关问题 更多 >
编程相关推荐