Функция range()
в Python
Функция range()
в Python используется для генерации последовательностей чисел. Она особенно полезна в сочетании с циклами for
для итерирования по определённому диапазону чисел.
Синтаксис
range(stop)
range(start, stop[, step])
start
: Начальное число последовательности (включительно). По умолчанию равно0
.stop
: Конечное число последовательности (не включая).step
: Шаг между числами. По умолчанию равно1
.
Особенности
- Функция
range()
возвращает объект типаrange
, который является неизменяемой последовательностью чисел. - В Python 3
range()
не создаёт список в памяти, что делает её эффективной по памяти, особенно при больших диапазонах. - Чтобы получить список чисел из объекта
range()
, можно использовать функциюlist()
.
Примеры использования
- Итерирование от 0 до 4:
for i in range(5): print(i) # Вывод: # 0 # 1 # 2 # 3 # 4
- Указание начального и конечного значений:
for i in range(2, 6): print(i) # Вывод: # 2 # 3 # 4 # 5
- Использование шага:
for i in range(0, 10, 2): print(i) # Вывод: # 0 # 2 # 4 # 6 # 8
- Обратный порядок с отрицательным шагом:
for i in range(5, 0, -1): print(i) # Вывод: # 5 # 4 # 3 # 2 # 1
- Создание списка чисел:
numbers = list(range(1, 11)) print(numbers) # Вывод: # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Практическое применение
- Итерирование по индексам списка:
fruits = ['яблоко', 'банан', 'вишня'] for i in range(len(fruits)): print(f"{i}: {fruits[i]}") # Вывод: # 0: яблоко # 1: банан # 2: вишня
- Повторение действий заданное число раз:
for _ in range(3): print("Привет!") # Вывод: # Привет! # Привет! # Привет!
Особенности использования
start
по умолчанию равен0
, если не указан.step
по умолчанию равен1
, но может быть изменён на любое целое число.- Если
step
отрицательный, тоstart
должен быть большеstop
, иначе последовательность будет пустой.
Генерация чисел с плавающей точкой
Функция range()
работает только с целыми числами. Если нужно создать последовательность чисел с плавающей точкой, можно использовать модуль numpy
или создать собственную функцию.
Пример с использованием numpy
:
import numpy as np
for i in np.arange(0, 1, 0.1):
print(i)
# Вывод:
# 0.0
# 0.1
# 0.2
# 0.30000000000000004
# 0.4
# 0.5
# 0.6
# 0.7000000000000001
# 0.8
# 0.9
Сравнение с Python 2
- В Python 2:
range()
возвращает список.xrange()
возвращает генератор.
- В Python 3:
range()
возвращает объект, подобный генератору.xrange()
удалён.
Советы и рекомендации
- Избегайте преобразования
range()
в список без необходимости, особенно при больших диапазонах, чтобы не расходовать лишнюю память. - Используйте цикл
for i in range(n):
для повторения действияn
раз. - Помните, что
stop
не включается в диапазон.
Заключение
Функция range()
является мощным инструментом для создания числовых последовательностей в Python. Она обеспечивает гибкость и эффективность при итерировании, позволяя задавать начальные и конечные значения, а также шаг. Понимание работы range()
поможет вам писать более эффективный и понятный код.
Если у вас есть дополнительные вопросы или нужна помощь с другими аспектами Python, пожалуйста, обращайтесь!