Python Функція range(): Float, List, Приклади циклу For

Що таке Python Діапазон?

Python range() — це вбудована функція, доступна з Python від Python(3.x), і він дає послідовність чисел на основі заданого початкового та кінцевого індексів. Якщо початковий індекс не вказано, індекс вважається 0, і він буде збільшувати значення на 1 до кінцевого індексу.

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

синтаксис

range(start, stop, step)

параметри

  • start: (необов’язково) Початковий індекс є цілим числом, і якщо його не вказано, значення за умовчанням дорівнює 0.
  • Стоп: Індекс зупинки визначає значення, на якому має зупинитися функція діапазону. Це обов’язковий вхід для функції діапазону. Останнє значення завжди буде на 1 менше за кінцеве значення.
  • Крок: (необов’язково). Значення кроку – це число, на яке має бути збільшено наступне число діапазону; за замовчуванням воно дорівнює 1.

Повернене значення

Повернене значення — це послідовність чисел від даного індексу початку до кінця.

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

Python range() було представлено з python версії 3, до цього xrange() була функцією.

І діапазон, і xrange() використовуються для створення послідовності чисел.

Нижче наведено різницю між діапазоном і xrange():

діапазон () xrange ()
Range() надає послідовність чисел і повертає список чисел. Функція xrange() дає генераторний об’єкт, який потрібно зациклити в циклі for, щоб отримати значення.
Range() повертає список. xrange() повертає об’єкт генератора.
Метод range() використовує більше пам’яті, оскільки повернутий список потрібно зберегти порівняно з xrange(). Оскільки xrange() повертає об’єкт генератора, він не надає значення миттєво, і його потрібно використовувати в циклі for, щоб отримати значення.
Використання пам’яті більше, тому виконання коду відбувається повільно під час роботи з величезним набором даних. Виконання коду відбувається швидше за допомогою xrange().

Використання діапазону ()

У цьому прикладі показано, як надрукувати значення від 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

Використання запуску та зупинки в діапазоні ()

У коді початкове значення дорівнює 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() дає збільшене значення для заданого значення зупинки. Давайте тепер спробуємо на прикладі отримати зменшене значення в заданому діапазоні.

Збільшення значень у діапазоні з додатним кроком.

Параметр крок у діапазоні () можна використовувати для збільшення/зменшення значень. За замовчуванням це додатне значення 1. Тому воно завжди надаватиме збільшення значень.

Значення кроку має бути додатним, якщо ви бажаєте, щоб на виході були збільшені значення.

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

вихід:

1 6 11 16 21 26

Revінший діапазон: зменшення значень із використанням від’ємного кроку

Крок параметра з від’ємним значенням у діапазоні () можна використовувати для отримання зменшених значень. У наведеному нижче прикладі значення кроку є від’ємним, тому вихідні дані будуть зменшені від заданого значення діапазону.

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 діапазон ()

Давайте тепер попрацюємо над діапазоном (), використовуючи числа з плаваючою комою.

приклад:

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 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 <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()

Цей метод друкує всі елементи з діапазону (). Використовуючи list(), він поверне елементи з range() у форматі списку.

приклад:

print(list(range(10)))

вихід:

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

Він дає вихід списку для заданого діапазону.

Приклад: отримати парні числа за допомогою range()

За допомогою range() буде отримано список парних чисел у діапазоні, наданому як вхідні дані. Параметри для діапазону () такі: початок — 2, зупинка — 20 і крок — 2, тому значення будуть збільшені на 2 і дадуть парні числа до зупинки-2.

приклад:

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

вихід:

2 4 6 8 10 12 14 16 18

Об’єднання виходів two-range().

У цьому прикладі буде об’єднано 2 функції 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(). Arrange() приймає ті самі параметри, що й 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(), але це можливо за допомогою NumPy arange().

приклад:

Діапазон, який ми хочемо, становить від 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 знаками після коми. Це відбувається через складність зберігання десяткових плаваючих чисел у двійковому форматі. Ви також можете округлити значення, якщо потрібно, і обмежити їх потрібними знаками після коми.

Підсумки

  • Python range() — це вбудована функція, доступна з Python від Python(3.x), і він дає послідовність чисел на основі заданого початкового та кінцевого індексів. Якщо початковий індекс не вказано, індекс вважається 0, і він буде збільшувати значення до кінцевого індексу.
  • Python range() було введено з python версія 3, до цього xrange() була функцією.
  • Range() надає послідовність чисел і повертає список чисел. Функція xrange() дає генераторний об’єкт, який потрібно зациклити в циклі for, щоб отримати значення.
  • Параметр крок у діапазоні () можна використовувати для збільшення/зменшення значень. За замовчуванням це додатне значення 1. Тому воно завжди надаватиме збільшення значень.
  • Python дає помилку для чисел з плаваючою комою, оскільки функція range() підтримує лише цілі значення.
  • Значення з range() можна отримати за допомогою циклу for, за допомогою index і list()
  • Модуль NumPy має функцію arange(), яка працює та видає аналогічний вихід, як range(). Функція arange() приймає ті самі параметри, що й range().
  • Можна отримати послідовність із плаваючою комою NumPy arange(), яка не підтримується за допомогою range().