python - 列出整数的所有除数的函数

标签 python python-2.7

我正在练习 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/

相关文章:

python - 如何在 Python 中用右移迭代步骤?

linux - Plone 统一安装程序缺少 Python

Python 使用 if 语句验证多个值

python - 使用Python的Facebook API

python - 使用 GAE Memcache API 缓存预渲染模板

python - 递归调用合并排序算法

python - Pandas 读取带空白的多索引 csv

python - 列数会影响sqlalchemy的速度吗?

python - 用其他值替换零序列

python - gevent和tornado结合如何提高性能?