Давайте разберемся, как строится тело цикла; и что происходит, когда мы проходим цикл.

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 здесь и здесь.