Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数不会返回值,而是返回“无”_Python_Python 3.x_Function_Return - Fatal编程技术网

Python 函数不会返回值,而是返回“无”

Python 函数不会返回值,而是返回“无”,python,python-3.x,function,return,Python,Python 3.x,Function,Return,请帮我看一下这段代码,它应该用来计算两个数字a,b之间的最大公除法。我遇到的问题是程序不会像预期的那样返回c,而是返回None。但是当我使用print语句时,它会打印出c的值 这是我的代码: def gcd(a, b): if a == 0: return b elif b == 0: return a elif a > b: big, small = a, b else: big, smal

请帮我看一下这段代码,它应该用来计算两个数字a,b之间的最大公除法。我遇到的问题是程序不会像预期的那样返回c,而是返回None。但是当我使用print语句时,它会打印出c的值

这是我的代码:

def gcd(a, b):
    if a == 0:
        return b
    elif b == 0:
        return a

    elif a > b:
        big, small = a, b
    else:
        big, small = b, a

    c = big % small
    if c == 0:
        print(small)
        return small
    gcd(small, c)

print(gcd(1071, 462))
谢谢大家。

当未遇到显式返回且函数体结束时,Python隐式返回None

在您的情况下,如果它通过所有其他情况,它只会命中:

gcd(small, c)
return None    # you haven't put that in explicitly but that's how Python processes it
因此,您可能只需要将最后一行更改为:

return gcd(small, c)

你忘了最后一行的回程票了。返回gcdsmall,c。我假设这是一个练习,您知道Python已经包含math.gcd了吗?非常感谢。我在想if语句中的返回就可以了。