Добро пожаловать в программирование на Python и в StackOverflow: -)
Есть три проблемы с вашим кодом:
1.Отступы: Python требует, чтобы вы обращали внимание на отступы, так что код на определенном уровне имеет отступ в одинаковом количестве.
Для кода, который выполняется после чего-то вроде оператора if, вам нужно поставитьследующий блок кода с отступом.Затем, когда у вас есть elif (который находится на том же уровне, что и оператор if), вам нужно вернуть отступ, чтобы он соответствовал уровню if.
Вы можете сделать отступ с пробелами или табуляцией, но выдолжно быть согласованным (т.е. придерживаться одного)
Возможно, используемый вами редактор испортил намерение при вставке кода, а также возможно, что некоторые отступы были испорчены, когдаВы также помещаете его в StackOverflow, но вам нужно, чтобы он выглядел так, как показано ниже.В этом случае каждое намерение - это два пробела (, поэтому в отступе сначала нет пробелов, затем два пробела, затем четыре пробела и т. Д. )
2.Опечатки: В последнем утверждении есть опечатка (поэтому вы на самом деле не вызываете определяемую вами функцию!)
3.Fibbonacci_cache: он не определен, поэтому он был добавлен вверху
Надеюсь, что это поможет - удачи вам в оставшейся части вашего путешествия в программирование ... ему потребуется настойчивость, но вы получитеЯ уверен, что время зависло!
fibonacci_cache = {}
def fibonacci (n) :
# If we have cached the value, then return it
if n in fibonacci_cache:
return fibonacci_cache[n]
# Compute the Nth term
if n== 1:
value = 1
elif n == 2:
value = 1
elif n > 2:
value = fibonacci(n-1) + fibonacci(n-2)
# Cache the value and return it
fibonacci_cache[n] = value
return value
print("n:", fibonacci(11))