Давайте разберемся, как строится тело цикла; и что происходит, когда мы проходим цикл.
start = 0
end = 5
for count in range(start, end):
print(count)
Приведенный выше цикл печатает значения счетчика от «начала» до «конца». На каждой итерации значение count проходит через значения start, start+1, start+2, …., end-2, end-1.
По сути, оператор «print(count)» повторяется для разных значений count. Верно?
Ну и еще один вариант сделать то же самое примерно так
print(0)
print(1)
print(2)
...
print(count - 2)
print(count - 1)
Но у него есть две проблемы. Один из них — это некрасиво. Это не выглядит красиво. Во-вторых, счетчик является переменным, мы не знаем заранее значение счетчика.
Однако, если мы заметим вышеизложенное, мы можем понять, что каждое приведенное выше утверждение может быть независимой единицей кодирования, и одна единица может вызывать другую с другим значением.
то есть одна функция может напечатать одно значение счетчика, а затем вызвать другую функцию для печати другого значения счетчика.
Скажем, что-то вроде этого
def print_value(count):
print(count)
print_value(count-1)
Да, я говорю о рекурсии! Рекурсия — это способ повторения одних и тех же утверждений без какого-либо цикла.
Если мы хотим напечатать значения от 0, 1, 2, … count-1, используя рекурсию, без какого-либо цикла, ответ будет следующим:
def print_value(count):
if (count -1) > 0:
print_value(count – 1) ## Recurse with next value of count
print(count – 1)
Если мы хотим напечатать значения от start, start+1, start+2, …. , end-2, end-1 используя рекурсию, ответ будет таким:
def print_value(start, end):
if end > (start + 1):
print_value(start + 1, end)
print(start)
Точно так же, если мы хотим напечатать значения из end, end-1, end-2, …., начать использовать рекурсию, ответ будет таким:
def print_value(start, end):
print(end)
if (end > start):
print_value(start, end – 1)
Надеюсь, вам понравится это обсуждение. Спасибо за ваше драгоценное время в чтении этого.
Об авторе:
Гульшан работает разработчиком программного обеспечения и архитектором с двадцатилетним опытом работы. Он любит преподавать или делиться своими знаниями с другими через свои курсы Udemy и Shikshaspace. Вы можете найти его курсы по программированию на Python здесь и здесь.