Основы Python: как использовать range для генерации числовых последовательностей

Раздел: Основы Python -> Базовые конструкции Python

Функция range в Python: основы и варианты использования

Основной способ: range(start, stop, step)

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

for i in range(2, 10, 3):
    print(i, end=' ')

Return b print python (возврат и печать в python)

2 5 8

Python a b c треугольник (вычисление треугольника по сторонам в python)

Пояснение: последовательность начинается с 2, заканчивается перед 10, шаг 3. Элементы: 2, 5, 8.

Типичные ошибки:

  • Передача нецелых чисел - приводит к TypeError.
  • Нулевой шаг - исключение ValueError.
  • Шаг положительный, но start >= stop - пустой range.

Как создать последовательность чисел от 0 до заданного значения?

Используйте range(stop) - самый простой вызов с одним аргументом. Генерирует числа от 0 до stop-1.

for i in range(5):
    print(i)

сумма a и b python (сумма двух чисел в python)

0
1
2
3
4

Range a b python (функция range в python)

Ошибки:

Если stop не целое число - TypeError. Если stop <= 0 - пустой range, цикл не выполнится.

Как получить числа от A до B-1?

Примените range(start, stop) с двумя аргументами. Шаг по умолчанию равен 1.

for i in range(3, 7):
    print(i)
3
4
5
6

Проблемы:

Если start >= stop при положительном шаге, последовательность пуста. Убедитесь, что start меньше stop.

Как задать произвольный шаг и получить числа с определённым интервалом?

Используйте range(start, stop, step) с тремя аргументами. Шаг может быть как положительным, так и отрицательным.

for i in range(0, 15, 4):
    print(i)
0 4 8 12

Распространённые ошибки:

  • Шаг равен 0 - ValueError.
  • Шаг положительный, но start > stop - пустой range.
  • Шаг отрицательный, но start < stop - также пустой range.
  • Все аргументы должны быть целыми числами.

Как перебрать числа от большего к меньшему (обратный порядок)?

Передайте отрицательный шаг. Например, range(10, 0, -2) даст 10, 8, 6, 4, 2.

for i in range(10, 0, -2):
    print(i, end=' ')
10 8 6 4 2

Замечание:

Важно помнить, что stop не включается, поэтому для включения 0 нужно указать stop = -1 (или 0, если шаг 1).

Как получить список чисел из range?

Оберните range в list(). Это создаст список всех элементов последовательности.

nums = list(range(2, 8, 2))
print(nums)
[2, 4, 6]

Ошибки:

Преобразование большого range в список может потребовать много памяти. range - ленивая последовательность, а список хранит все элементы.

Цели и случаи использования каждого варианта:

  • range(stop) - для цикла с известным количеством итераций, когда индекс начинается с 0.
  • range(start, stop) - когда нужен сдвиг начального значения, например, для обхода части списка.
  • range(start, stop, step) - для выборки элементов с шагом (чётные, нечётные, каждый третий).
  • range с отрицательным шагом - для перебора в обратном направлении.
  • list(range(...)) - когда необходим именно список для изменений, индексации или передачи функциям, ожидающим список.

Расширенные примеры работы с range

Пример 1: обход индексов списка с range и len

Пример
lst = ['a', 'b', 'c', 'd']
for i in range(len(lst)):
    print(f"Index {i}: {lst[i]}")
Index 0: a
Index 1: b
Index 2: c
Index 3: d

Пример 2: генерация списка квадратов чисел от 1 до 10 с шагом 2

Пример
squares = [x**2 for x in range(1, 11, 2)]
print(squares)
[1, 9, 25, 49, 81]

Пример 3: range с отрицательным шагом для убывания с включением границ

Пример
for i in range(10, -1, -1):
    print(i, end=' ')
10 9 8 7 6 5 4 3 2 1 0

Пример 4: проверка принадлежности числа к диапазону (экономит память)

Пример
print(5 in range(0, 10))
print(15 in range(0, 10))
True
False

Пример 5: создание range с большим шагом и преобразование в список

Пример
big = list(range(0, 100, 25))
print(big)
[0, 25, 50, 75]

Пример 6: использование range для генерации числовых меток времени (например, каждые 10 минут)

Пример
for minute in range(0, 60, 10):
    print(f"{minute:02d}:00")
00:00
10:00
20:00
30:00
40:00
50:00

Пример 7: range с длинными последовательностями - демонстрация ленивого вычисления

Пример
r = range(10**12)  # не занимает память
print(r)
print(999_999_999_999 in r)  # быстрая проверка
range(0, 1000000000000)
True

Пример 8: ошибка при нулевом шаге

Пример
try:
    for i in range(0, 5, 0):
        pass
except ValueError as e:
    print(e)
range() arg 3 must not be zero

Пример 9: использование range с отрицательным шагом и началом меньше конца - пустой результат

Пример
r = range(0, 5, -1)
print(list(r))
[]

Пример 10: сравнение range и xrange в Python 2 (для исторического контекста)

Пример
# В Python 3 range полностью аналогичен xrange из Python 2.
# xrange возвращал итератор, а range - список.
print(type(range(5)))
<class 'range'>

Функция range в Python - comments

En
Range a b python (python)