Python Функція range(): Float, List, Приклади циклу For
⚡ Розумний підсумок
Python range() — це вбудована функція, яка генерує незмінну послідовність цілих чисел від початкового значення до, але не включаючи, кінцевого значення, використовуючи необов'язковий крок для керування приростом.
Що таке Python Діапазон?
Python range() — це вбудована функція, доступна з Python від Python (3.x), і він дає послідовність чисел на основі заданого початкового та кінцевого індексів. Якщо початковий індекс не вказано, індекс вважається 0, і він буде збільшувати значення на 1 до кінцевого індексу.
Наприклад, range(5) виведе значення 0, 1, 2, 3, 4. Python range() — дуже корисна команда, яка здебільшого використовується, коли потрібно виконати ітерацію за допомогою для петлі.
синтаксис
Синтаксис функції range() показано нижче:
range(start, stop, step)
Параметри
- start: (необов’язково) Початковий індекс є цілим числом, і якщо його не вказано, значення за умовчанням дорівнює 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(). |
Використання діапазону ()
У цьому прикладі показано, як надрукувати значення від 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() повертає збільшене значення для заданого значення зупинки. Тепер розглянемо приклад, щоб отримати зменшене значення в заданому діапазоні.
Збільшення значень у діапазоні з додатним кроком
Параметр step у range() можна використовувати для збільшення або зменшення значень. За замовчуванням це додатне значення, 1. Тому він завжди повертатиме збільшені значення.
Значення кроку має бути додатним, якщо ви хочете отримати збільшені значення на виході.
for i in range(1, 30, 5): print(i, end =" ")
вихід:
1 6 11 16 21 26
Reverse Діапазон: Зменшення значень з використанням від'ємного кроку
Параметр step з від'ємним значенням у range() можна використовувати для отримання зменшених значень. У наведеному нижче прикладі значення step від'ємне, тому вивід буде зменшуватися відносно заданого значення діапазону.
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 діапазон ()
Давайте тепер попрацюємо над діапазоном (), використовуючи числа з плаваючою комою.
приклад:
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() отримає список парних чисел у діапазоні, заданому як вхідні дані. Параметри 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
Об’єднання виходів 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(). Функція 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(), але це можливо за допомогою 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 знаками після коми. Це відбувається через складність зберігання десяткових чисел з плаваючою комою у двійковому форматі. Ви також можете округлити значення, якщо потрібно, та обмежити їх потрібною кількістю знаків після коми.

