
Шаг 2. Функция range()
Баллов за прохождение: 1
range()
Вы уже знаете, что в Python существуют различные коллекции. С помощью функции range() можно сгенерировать итерируемый объект, состоящий из целых чисел.
Функция range() в Python создает последовательность чисел в указанном диапазоне. Она обычно используется в циклах for для выполнения повторяющихся операций определенное количество раз. Синтаксис range() обычно выглядит так: range(start, stop, step), где start - начальное значение последовательности (по умолчанию 0), stop - конечное значение последовательности (не включается), а step - шаг изменения чисел (по умолчанию 1). Функция range() может принимать один, два или три аргумента, в зависимости от того, какой диапазон чисел вам нужен.
Использование функции
Пример 1: Использование одного аргумента в качестве конечного значения (stop):
# Создаем последовательность чисел от 0 до 4 (исключительно)
for i in range(5):
print(i)
Результат:
0
1
2
3
4
Отсюда стоит сделать несколько выводов!
Вывод 1: Счёт начинается с нуля;
Вывод 2: Граница конечного значения (stop) не включительна!
Пример 2: Использование двух аргументов в качестве начального и конечного значения (start, stop):
# Создаем последовательность чисел от 2 до 6 (исключительно)
for i in range(2, 7):
print(i)
Результат:
2
3
4
5
6
Отсюда тоже нужно сделать вывод, что старт значение должно быть всегда меньше чем стоп-значение, так как значение всегда увеличивается на 1.
Пример 3: Использование трех аргументов: начальное, конечное и шаг (start, stop, step).
# Создаем последовательность чисел от 1 до 10 (исключительно) с шагом 2
for i in range(1, 11, 2):
print(i)
Результат:
1
3
5
7
9
10
Теперь к единице добавляется не по 1, а по 2. Попробуйте также сделать (5, 35, 5), тогда будет шаг каждые 5.
Пример 4: Отрицательный шаг.
# Создаем убывающую последовательность чисел от 10 до 1 (не включая 1) с шагом -1
for i in range(10, 0, -1):
print(i)
Результат:
10
9
8
7
6
5
4
3
2
1
Наконец старт может быть больше, чем стоп, потому что шаг отрицательный, и теперь цикл движется в обратную сторону!
Дополнительные факты о range():
Ленивая вычислительная модель: Функция range() использует ленивую вычислительную модель. Это означает, что она не создает список всех чисел в заданном диапазоне сразу, а генерирует их по мере необходимости. Это экономит память и обеспечивает эффективное использование ресурсов, особенно при работе с большими диапазонами чисел.
Поддержка в циклах: Функция range() часто используется в циклах for для выполнения итераций определенное количество раз. Это особенно полезно, когда нужно выполнить повторяющиеся операции с определенным числом итераций.
Использование в качестве итерируемого объекта: Результат вызова функции range() является итерируемым объектом, что означает, что его можно использовать вместе с другими итерируемыми объектами или функциями, такими как zip(), enumerate(), и sum(), для различных манипуляций с данными.
Использование в списковых включениях: Функция range() также может использоваться в списковых включениях для создания списков чисел в указанном диапазоне. Например:
numbers = [i for i in range(1, 6)]
print(numbers) # Output: [1, 2, 3, 4, 5]
Нет преобразования типов данных: Важно помнить, что объект, возвращаемый функцией range(), не является списком, даже если его можно использовать в подобных контекстах. Если требуется список чисел, можно использовать функцию list() для преобразования результата range() в список.