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

Содержание

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

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

Например, range (5) выведет вам значения 0,1,2,3,4. Python range () - очень полезная команда, которая в основном используется, когда вам нужно выполнить итерацию с использованием цикла for.

В этом руководстве вы узнаете:

  • Что такое диапазон Python?
  • Синтаксис
  • Python range () Функция и история
  • Использование range ()
  • Использование start и stop в диапазоне ()
  • Использование start, stop и step
  • Увеличение значений в диапазоне с помощью положительного шага.
  • Обратный диапазон: уменьшение значений с использованием отрицательного шага.
  • Использование чисел с плавающей запятой в Python range ()
  • Использование цикла for с Python range ()
  • Использование Python range () в качестве списка
  • Использование символов в Python range ()
  • Как получить доступ к элементам диапазона
  • Пример: получить четные числа с помощью range ()
  • Объединение двухдиапазонных () выходов
  • Использование range () с NumPy

Синтаксис

range(start, stop, step)

Параметры

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

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

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

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

Python range () был введен из Python версии 3, до этого xrange () был функцией.

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

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

классифицировать() xrange ()
Диапазон () дает последовательность чисел и возвращает список чисел. Функция 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 меньше заданного значения, то есть стоп-1.

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

Выход:

0 1 2 3 4 5 6 7 8 9

Использование start и stop в диапазоне ()

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

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

Выход:

3 4 5 6 7 8 9

Использование start, stop и step

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

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

Выход:

3 5 7 9

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

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

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

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

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

Выход:

1 6 11 16 21 26

Обратный диапазон: уменьшение значений с использованием отрицательного шага.

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

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 и далее до достижения стоп-значения, но здесь разница в том, что последнее значение будет стоп + 1.

Использование чисел с плавающей запятой в Python range ()

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

Пример:

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

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

Результат:

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

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

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

В этом примере мы будем использовать массив чисел и давайте посмотрим, как использовать итерацию массива внутри цикла 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 range () в качестве списка

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

Пример:

print(list(range(10)))

Выход:

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

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

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

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

Пример:

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

Выход:

Traceback (most recent call last):File "python_range.py", line 1, in 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)

Выход:

012345

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

Индекс используется с диапазоном, чтобы получить значение, доступное в этой позиции. Если значение диапазона равно 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)

Выход:

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)

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

Этот метод распечатает все элементы из диапазона (). Используя 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

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

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

Пример:

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

Выход:

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

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

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

Синтаксис:

arange(start, stop, step)

Чтобы работать с NumPy, следуйте инструкциям, приведенным ниже.

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

import numpy

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

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

pip install numpy

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

import numpy as npfor i in np.arange(10):print(i, end =" ")

Выход:

0 1 2 3 4 5 6 7 8 9

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

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

Пример:

Нам нужен диапазон от 0,5 до 1,5. Значение будет увеличено на 0,2.

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Выход:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

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

Резюме:

  • Python range () - это встроенная функция, доступная в Python из Python (3.x), и она выдает последовательность чисел на основе заданного начального и конечного индекса. Если начальный индекс не указан, индекс считается равным 0, и он будет увеличивать значение до конечного индекса.
  • Python range () был введен из Python версии 3, до этого xrange () был функцией.
  • Диапазон () дает последовательность чисел и возвращает список чисел. Функция xrange () дает объект-генератор, который необходимо зациклить в цикле for для получения значений.
  • Шаг параметра в диапазоне () может использоваться для увеличения / уменьшения значений. По умолчанию это положительное значение 1. Таким образом, он всегда будет давать увеличенные значения.
  • Python выдает ошибку для чисел с плавающей запятой, поскольку функция range () поддерживает только целочисленные значения.
  • Доступ к значениям из range () можно получить с помощью цикла for, с помощью index и list ().
  • В модуле NumPy есть функция arange (), которая работает и дает аналогичный результат, как и range (). Arange () принимает те же параметры, что и range ().
  • Можно получить последовательность с плавающей запятой NumPy arange (), которая не поддерживается с помощью range ().

Интересные статьи...