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