Я делаю простой скрипт в 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), где я пытаюсь добавьте или вычтите 1 из n и m.
print(n + 1)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
Я понимаю, что Python принимает все входные данные в виде строки, поэтому я специально преобразовал входные данные с использованием int () в самом начале сценарий. И все же, TypeError, кажется, подразумевает, что в compute (m, n) m и n не являются int, а скорее NoneType, поэтому они не могут быть добавлены или вычтены. Почему это так и как я могу это исправить?