Рубрики
Без рубрики

Рекурсивная функция питания: вы застряли с этим солилерновым кодом?

Введение Python: Сегодняшняя тема является быстрому пониманию кода и если путаница в Python.

Автор оригинала: Chris.

Если вы изучаете Python с отличным Sololearn App Вы можете оказаться с этим фрагментом кода:

def power(x, y):
  if y == 0:
    return 1
  else:
    return x * power(x, y-1)
		
print(power(2, 3))

Какая вывод этого кода фрагмент? И, самое главное, как это работает? Это краткое руководство вам скажет вам!

Код создает функцию, которая возвращает х ^ y Отказ Он использует важную концепцию программирования Рекурсия : Он называет себя более простым версией проблемы, пока она не достигнет тривиального случая: y = 0 Отказ Мы называем это рекурсией Базовый чехол Отказ

Базовый чехол: Если показатель y 0, решение 1, потому что каждый номер х взяты на силу 0 1 по определению (см. Следующий раздел).

Нестанционный случай: Если показатель y больше 0, функция Power (X, Y) Возвращает результат X * Power (X, Y-1) Отказ Он называет себя немного простым проблемой. Скажем, вы знаете результат Power (X, Y-1) – Это x ^ (y-1) Отказ Теперь вы можете получить х ^ y Умножая более легкий результат ( X на мощность Y-1 ) с х Отказ Вот как это выглядит: x ^ (y-1) * x ^ y Отказ Вы можете увидеть эту идею в следующем графике:

Теперь вы можете увидеть, как разворачивается код:

  • Переменные X и Y определены. Они х = 2 и y = 3 Отказ
  • Проверьте, стоит ли y , что это Ложь Так что вы входите в ветку остальных.
  • В ветке Else вы вызываете саму функцию и повторите эту проверку и вычисление для получения следующих шагов:
Step 0: x * (x^(y-1))
Step 1: 2 * (2^(3-1))
Step 2: 2 * (2^2)
Step 3: 2 * 4
Result: 8

Таким образом, выход этого фрагмента кода составляет 8.

Почему какое-либо номер к власти нуля дает один?

Если вы умножите любое число с одним, число остается прежним. Например, 1 * x Для всех х Отказ Это свойство называется Мультипликативная идентичность Отказ Любое число к нулевой мощности является одним из тех, поскольку это просто продукт номеров вообще, что является мультипликативной идентичностью 1. аналогично, номер идентификации суммы составляет 0, поэтому сумма номеров нет, является суммой идентификационного номера 0.

Связанные рекурсионные видео

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.