Python Функция range(): Float, List, Примеры циклов For

⚡ Умное резюме

Python Функция range() — это встроенная функция, которая генерирует неизменяемую последовательность целых чисел от начального значения до конечного значения, не включая его, используя необязательный шаг для управления приращением.

  • 🔘 Синтаксис: Функция range(start, stop, step) принимает до трех целочисленных аргументов, где start по умолчанию равен 0, а step — 1.
  • ☑️ Эксклюзивная остановка: Последовательность всегда заканчивается на одно значение перед индексом остановки, поэтому range(5) возвращает значения от 0 до 4.
  • Пошаговое управление: Положительный шаг увеличивает значения, а отрицательный шаг возвращает их в обратном направлении, создавая диапазон значений.
  • 🧪 Ограничения по типам: Принимаются только целые числа, поэтому аргументы с плавающей запятой или строки вызовут ошибку TypeError.
  • 🇧🇷 Числа с плавающей запятой в NumPy: Функция `arange()` в NumPy расширяет возможности функции `range()` для работы с последовательностями чисел с плавающей запятой.
  • 🤖 Рабочие процессы ИИ: В коде машинного обучения функция range() используется для итерации по эпохам обучения, мини-пакетам и сеткам гиперпараметров.

Python диапазон() Функция

Что такое Python Диапазон?

Python range() — это встроенная функция, доступная с помощью Python от Python (3.x), и он дает последовательность чисел на основе заданных начального и конечного индексов. В случае, если начальный индекс не задан, индекс считается равным 0, и он будет увеличивать значение на 1 до конечного индекса.

Например, функция range(5) выведет значения 0, 1, 2, 3, 4. Python Функция `range()` — очень полезная команда, которая чаще всего используется, когда необходимо выполнить итерацию с помощью... для цикла.

Синтаксис

Синтаксис функции range() показан ниже:

range(start, stop, step)

Параметры

  • Начало: (необязательно) Начальный индекс представляет собой целое число. Если он не указан, значение по умолчанию равно 0.
  • стоп: Индекс остановки определяет значение, при котором функция диапазона должна остановиться. Это обязательный параметр для функции диапазона. Последнее значение всегда будет на 1 меньше значения остановки.
  • шаг: (необязательно) Шаг — это число, на которое необходимо увеличить следующее число в диапазоне; по умолчанию оно равно 1.

Возвращаемое значение

Возвращаемое значение представляет собой последовательность чисел от заданного начального до конечного индекса.

Python range() Функция и история

Python range() был введен из Python версия 3; до этого использовалась функция xrange().

Функции range() и xrange() используются для создания последовательности чисел.

Ниже приведены различия между функциями range() и xrange():

диапазон() xrange ()
Функция range() выдает последовательность чисел и возвращает список чисел. Функция xrange() предоставляет объект-генератор, который необходимо зациклить в цикле for для получения значений.
Range() возвращает список. xrange() возвращает объект-генератор.
Метод range() использует больше памяти, поскольку возвращаемый список необходимо сохранять по сравнению с методом xrange(). Поскольку функция xrange() возвращает объект-генератор, она не выдает значения мгновенно и должна использоваться внутри цикла for для получения значений.
Использование памяти увеличивается, поэтому выполнение кода замедляется при работе с большими объемами данных. Выполнение кода происходит быстрее при использовании xrange().

Использование range ()

В этом примере показано, как распечатать значения от 0 до 9 с помощью range().

В качестве значения в диапазоне используется 10, поэтому вывод будет 0 1 2 3 4 5 6 7 8 9.

Поскольку начальное значение не указано, оно принимается за 0, и задается значение до 9 включительно. Последнее значение всегда на 1 меньше заданного значения, то есть stop-1.

for i in range(10):
    print(i, end =" ")

Выход:

0 1 2 3 4 5 6 7 8 9

Использование запуска и остановки в диапазоне()

В коде начальное значение равно 3, а конечное — 10. Здесь начальный индекс равен 3, поэтому последовательность чисел будет начинаться с 3 и продолжаться до конечного значения. Последнее значение в последовательности будет на 1 меньше конечного значения, 10-1 = 9.

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

Выход:

3 4 5 6 7 8 9

Использование запуска, остановки и шага

Начальное значение равно 3, поэтому последовательность чисел начнется с 3. Конечное значение равно 10, поэтому последовательность чисел закончится на (10-1), то есть на 9. Шаг равен 2, поэтому каждое значение в последовательности будет увеличиваться на 2. Если значение шага не указано, значение шага по умолчанию равно 1.

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

Выход:

3 5 7 9

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

Увеличение значений в диапазоне с положительным шагом.

Параметр step в функции range() можно использовать для увеличения или уменьшения значений. По умолчанию это положительное значение, равное 1. Поэтому значения всегда будут увеличиваться.

Если вы хотите получать на выходе значения с шагом, то значение должно быть положительным.

for i in range(1, 30, 5):
    print(i, end =" ")

Выход:

1 6 11 16 21 26

Reverse Диапазон: уменьшение значений с использованием отрицательного шага.

Параметр step с отрицательным значением в функции range() можно использовать для получения уменьшаемых значений. В приведенном ниже примере значение step отрицательное, поэтому выходное значение будет уменьшаться по сравнению с заданным значением range.

for i in range(15, 5, -1):
    print(i, end =" ")

Выход:

15 14 13 12 11 10 9 8 7 6

Начальное значение равно 15, конечное значение равно 5, а шаг — отрицательное число, то есть -1. При таких входных данных функция range() будет уменьшать значение начиная с 15 до достижения конечного значения, но здесь разница в том, что последнее значение будет равно stop + 1.

Использование плавающих чисел в Python диапазон()

Давайте теперь поработаем над range(), используя числа с плавающей запятой.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

for i in range(10.5):
    print(i, end =" ")

В приведенном выше примере мы использовали значение остановки равным 10.5.

Выход:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

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

Использование цикла for с Python диапазон()

В этом примере мы будем использовать массив чисел и посмотрим, как перебирать элементы массива внутри цикла for с помощью функции range().

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

Выход:

MysqlMongodb PostgreSQL Firebase

В приведенном выше примере мы использовали len(arr_list) в качестве значения остановки. Цикл for будет выполняться до значения остановки, то есть до длины массива, которая равна 4, поскольку в массиве arr_list четыре элемента. Начальное значение будет равно 0, а шаг — 1, поэтому значения будут начинаться с 0 и заканчиваться на 3, то есть длина массива - 1, то есть 4 - 1 = 3.

. Python диапазон() в виде списка

В этом примере мы увидим, как использовать выходные данные диапазона в виде списка.

Пример:

print(list(range(10)))

Выход:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Вы можете видеть, что результат представляет собой список. Не было необходимости зацикливать range(), и с помощью метода list() мы могли напрямую преобразовать выходные данные из диапазона в формат списка.

Использование символов в диапазоне Python()

До сих пор мы использовали целые числа в функции range() Python. Мы также видели, что числа с плавающей запятой не поддерживаются в диапазоне Python. Давайте попробуем посмотреть, что происходит, когда мы используем символы.

Пример:

for c in range ('z'):
        print(c, end =" ")

Выход:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

Выдает ошибку, говорящую, что строку нельзя интерпретировать как целое число.

Чтобы получить список алфавитов, вы можете настроить код и получить желаемый результат, как показано ниже:

Пример:

def get_alphabets(startletter, stopletter, step):
    for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
        yield chr(c)

print(list(get_alphabets("a", "h", 1)))

Выход:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Как получить доступ к элементам диапазона

Вы можете использовать цикл for для получения значений из диапазона или использовать индекс для доступа к элементам из диапазона().

Использование цикла for

Пример:

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

Выход:

0
1
2
3
4
5

Используя индекс

Индекс используется с диапазоном, чтобы получить значение, доступное в этой позиции. Если значение диапазона равно 5, чтобы получить начальное значение, вы можете использовать диапазон (5)[0] и следующий диапазон значений (5)[1] и так далее.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

startvalue = range(5)[0] 
print("The first element in range is = ", startvalue) 

secondvalue = range(5)[1] 
print("The second element in range is = ", secondvalue) 

lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)

Выход:

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

Использование списка()

Этот метод распечатает все элементы из диапазона(). Используя list(), он вернет элементы из range() в формате списка.

Пример:

print(list(range(10)))

Выход:

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Он дает вывод списка для заданного диапазона.

Пример: получение четных чисел с помощью range()

Функция range() получит список четных чисел в заданном диапазоне. Параметры функции range(): start = 2, stop = 20, step = 2, поэтому значения будут увеличиваться на 2 и будут содержать четные числа до stop-2.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

for i in range(2, 20, 2):
    print(i, end =" ")

Выход:

2 4 6 8 10 12 14 16 18

Объединение выходных данных двух диапазонов()

В этом примере мы объединим две функции range() с помощью функции chain() из модуля itertools.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

from itertools import chain

print("Merging two range into one")
frange =chain(range(10), range(10, 20, 1))
for i in frange:
    print(i, end=" ")

Выход:

Merging two range into one
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Использование range() с NumPy

В модуле NumPy есть функция arange(), которая работает и выдает результат, аналогичный функции range(). Функция arange() принимает те же параметры, что и range().

Синтаксис:

arange(start, stop, step)

Для работы с NumPy выполните следующие действия.

Шаг 1: Импортировать модуль NumPy.

import numpy

В случае, если во время выполнения возникнет ошибка "модуль numpy не найден", необходимо установить модуль, как показано в шаге 2.

Шаг 2Установите NumPy.

pip install numpy

Шаг 3: Рабочий пример arange() с использованием NumPy

import numpy as np

for  i in np.arange(10):
   print(i, end =" ")  

Выход:

0 1 2 3 4 5 6 7 8 9

Числа с плавающей запятой с использованием NumPy arange()

Получить последовательность чисел с плавающей запятой с помощью функции range() невозможно, но это возможно с помощью функции arange() из библиотеки NumPy.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Нам нужен диапазон от 0.5 до 1.5. Значение будет увеличиваться на 0.2.

import numpy as np

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")  

Выход:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Полученный результат немного странный; некоторые числа с плавающей запятой отображаются с 16 знаками после запятой. Это происходит из-за сложности хранения десятичных чисел с плавающей запятой в двоичном формате. При необходимости можно округлить значения и ограничить их необходимым количеством десятичных знаков.

Часто задаваемые вопросы (FAQ)

In Python 3. Функция range() возвращает ленивый, неизменяемый объект диапазона, а не список. Она генерирует числа по запросу. Если требуется реальный список, оберните его в list(range(n)). Python 2 выдал полный список.

Значение остановки является исключительным, поэтому range(len(items)) корректно сопоставляется с индексами, начинающимися с нуля. Чтобы включить конечную точку, добавьте единицу к значению остановки, например range(1, 11), чтобы считать от 1 до 10.

Нет. Вызов range(0, 10, 0) вызывает ValueError: range() arg 3 must not be zero, поскольку нулевой шаг никогда не достигнет значения остановки и будет зацикливаться бесконечно. Используйте вместо этого положительный или отрицательный шаг.

Функция range() отклоняет числа с плавающей запятой, но генератор списков может масштабировать целые числа: [x * 0.5 for x in range(0, 6)] возвращает значения от 0.0 до 2.5. Это позволяет избежать импорта NumPy на данном этапе.ping через десятичные значения.

Да. Объект range хранит только значения начала, конца и шага, поэтому range(1000000) использует тот же крошечный, постоянный объем памяти, что и range(10). Значения вычисляются по одному за раз во время итерации.

Используйте оператор in: 5 in range(0, 10) возвращает True. Для объектов диапазона, Python Эта проверка принадлежности выполняется с помощью быстрых арифметических вычислений за постоянное время, а не путем сканирования каждого элемента, поэтому она остается эффективной при работе с большими диапазонами.

В коде машинного обучения функция range() используется для перебора эпох обучения, итерации по мини-пакетам и построения сеток гиперпараметров. Функции arange() и linspace() из библиотеки NumPy расширяют это до диапазонов с плавающей запятой для расписаний скорости обучения и пороговых значений, распространенных в экспериментах по искусственному интеллекту.

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

Подведем итог этой публикации следующим образом: