我正在练习 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]
我真的很想保持简单,我不明白它有什么不好,我搜索了很多答案,但没有一个能达到我的理解水平。为什么我的功能没有按预期工作?
最佳答案
你的划分是倒退的。
我想你的意思是:
# I took the s off of "divisors" since it's actually a single number
integer % divisor == 0
这样想,如果 integer
是 50,divisor
是 2,按照你的方式,它将是:
2 % 50 == 0
如果分子小于分母,则该检查永远不会为真,除非数字相同。我总是让自己通过这种心理检查,以确保我没有不小心把数字倒过来。
并且,如评论中所述,不要创建名为 list
的变量。 list
是一个内置函数,隐藏它有可能在以后导致错误。
关于python - 列出整数的所有除数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51654950/