gpt4 book ai didi

python - 为什么 Python 返回 None 而不是值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:09 25 4
gpt4 key购买 nike

<分区>

又是一个愚蠢的问题。我这里有一个非常简单的算法来计算最大的除法器。

我的 C++ 代码片段如下所示

int findGcd(int m, int n)
{
int r = m % n;

if(r == 0)
{
return n;
}

else
{
m = n;
n = r;
findGcd(m, n);
}
}

int main()
{
cout << findGcd(13, 3);

return 0;
}

... 并且它返回(在这个例子中完全符合预期)1.

如果我用 Python 实现它——如下所示:

def findGcd(m, n):
"""Calculates the greatest common divider """
r = m % n

if r == 0:
return n

else:
m = n
n = r
findGcd(m, n)




number = findGcd(13,3)
print(number)

它只返回 NONE 而不是 1。我已经调试了它并且 n 确实存储了正确的值 1 但仍然返回 None。

我可以通过在 else 分支中对函数的递归调用添加“return”来解决这个问题。但这是为什么呢?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com