如何使用for和if编写函数

时间:2019-05-28 20:55:09

标签: python-3.x

我正在尝试编写用于计算任意整数的因数的代码,但是不幸的是,当我运行时,我收到了错误的答案

在这种情况下,我尝试了不定义函数的循环,但得到了结果。相反,当我定义一个函数时,我看不到正确的结果

r = 0
def factor(a):
    global r
    for i in range(1, a + 1):
        if a % i == 0:
        r += 1
        return r

a = int(input())
factor(a)

例如186个因素,但我只收到1

2 个答案:

答案 0 :(得分:0)

这是一个缩进问题:该函数只应在循环完成迭代后返回。

r = 0
def factor(a):
    global r
    for i in range(1, a + 1):
        if a % i == 0:
            r += 1
    return r

a = 18   # int(input())
factor(a)

输出:

6

答案 1 :(得分:0)

使用打印检查代码。 Python中的缩进很重要。另外,不需要全局。

def factor(a):
    r = 0
    for i in range(1, a + 1):
        if a % i == 0:
            print('i', i)
            r += 1
    return r

a = int(input())
print(factor(a))