我正在用Python制作一个简单的脚本作为评估阿克曼函数的练习。首先,脚本要求用户输入,然后尝试计算其余部分。代码如下:
m = int(input('Please input m.\n'))
n = int(input('Please input n.\n'))
def compute(m, n):
if m == 0:
print(n + 1)
elif m > 0 and n == 0:
compute(m - 1, 1)
else:
compute(m - 1, compute(m, n - 1))
compute(m, n)
让我感到困惑的部分是当它返回TypeError时,特别是对于计算(m,n)中的行,我试图从n和m中添加或减去1。
print(n + 1)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
我知道Python将所有输入都作为字符串,这就是为什么我在脚本的开头使用int()专门转换输入的原因。然而,TypeError似乎暗示在compute(m,n)中,m和n不是int,而是NoneType,因此它们不能被添加或减去。为什么会这样,我该如何解决这个问题?
守着星空守着你
相关分类