Как использовать `range()` с отрицательным шагом?

Использовать range() с отрицательным шагом можно, указав начальное значение больше конечного и отрицательное значение шага. Например:
range(10, 0, -1) создаст последовательность чисел от 10 до 1 (не включая 0) с шагом -1.

Использовать функцию range() с отрицательным шагом очень просто и полезно для создания последовательностей чисел в обратном порядке.

Синтаксис:

range(start, stop, step)

Где:

  • start: Начальное значение последовательности (включительно).
  • stop: Конечное значение последовательности (не включается в последовательность).
  • step: Шаг, с которым генерируется последовательность. Чтобы двигаться в обратном направлении, step должен быть отрицательным.

Важно:

  • Когда используется отрицательный шаг, start должно быть больше, чем stop. Иначе, range() вернет пустую последовательность.
  • Если start пропущено (то есть используется только range(stop, step) или range(step)), то автоматически устанавливается start=0, что обычно нежелательно при отрицательном шаге.

Примеры:

Пример 1:

for i in range(5, 0, -1):
  print(i)
# Вывод:
# 5
# 4
# 3
# 2
# 1

Пример 2: (с включением нуля)

for i in range(5, -1, -1):
  print(i)
# Вывод:
# 5
# 4
# 3
# 2
# 1
# 0

Пример 3: (отрицательные числа)

for i in range(-1, -6, -1):
  print(i)
# Вывод:
# -1
# -2
# -3
# -4
# -5

Пример 4: (создание списка)

numbers = list(range(10, 5, -1))
print(numbers)
# Вывод:
# [10, 9, 8, 7, 6]

Пример 5: (пустая последовательность, если start < stop при отрицательном шаге)

for i in range(0, 5, -1):
  print(i) # Ничего не будет выведено
print(list(range(0,5,-1))) # Output: []
0