python - 为什么在 Python 中返回 'NoneType'?

标签 python

我有一个代码基本上解决了 Project Euler 中的一个问题,旨在找出前 20 个自然数的 LCM。

def GCD(a, b):              #Euclid's algorithim
    if (b == 0):
        return a
    else:
        GCD(b, a % b)

def LCM(a, b):             #LCM(a,b) = a*b/GCD(a,b)
    x = GCD(a, b)
    return ((a * b)/x)

def RFIND(a, b):
    if (b == 20):
        return a
    else:
        RFIND(LCM(a, b), b + 1)

print RFIND(2, 1)

但是我在运行时遇到错误。

    return ((a * b)/x)
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'

我可以知道为什么吗?

最佳答案

尝试

def GCD(a, b):              #Euclid's algorithim
    if (b == 0):
        return a
    else:
        return GCD(b, a % b)

您必须返回递归调用返回的值。 RFIND 也有类似的问题。

关于python - 为什么在 Python 中返回 'NoneType'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4714764/

相关文章:

Python项目目录结构/pytest麻烦

python - wxPython 中的音量指示器

python - 如何分离数组并根据数组中的索引添加它们?

python - 了解使用锁和 Python GIL 的抢占式多任务处理?

python - 如何将列表(在 python 中)拆分为不同部分(在某个元素之后)?

python - Django,找不到网址?

python - 在 Pygame 窗口中保持一个 Sprite

python - 使用用户空间中的常规文件模仿 Linux 设备模型

Python - Ctype.windll.kernel32.CreateThread 参数值

python - 在 Python 3 中调用 gnome 终端子进程时出现 "Failed to execute child process (No such file or directory)"