Функція Range
Функція range()
у Python — це вбудована функція, яка генерує послідовність чисел.
Її часто використовують для ітерації по послідовності в циклах, особливо коли потрібно виконати цикл певну кількість разів.
Це ідеально підходить для виконання завдань із передбачуваним шаблоном повторення, наприклад, поповнення запасів на полицях або планування розпродажів у продуктовому магазині.
Розглянемо, як Олексій ефективно використовує функцію range()
для управління рутинними завданнями у нашому продуктовому магазині:
Синтаксис і аргументи
Функція range()
може приймати до трьох аргументів, що робить її універсальною для різних сценаріїв циклів.
Загальний синтаксис функції range
:
python
start
: це перше число у послідовності. Є необов'язковим; якщо його не вказати, послідовність почнеться з0
.stop
: це останнє число у послідовності, але послідовність зупиниться перед цим числом. Цей аргумент є обов'язковим.step
: це крок, на який збільшується (або зменшується) кожне наступне число у послідовності. Є необов'язковим; якщо його не вказати, послідовність збільшується на1
кожного разу.
Тепер, коли ви ознайомилися із синтаксисом функції range()
, розглянемо приклади, щоб побачити, як кожен аргумент — start
, stop
і step
— впливає на поведінку циклів.
Один аргумент
Коли функція range()
отримує лише один аргумент, він розглядається як параметр stop
.
У нашому прикладі вона генерує послідовність із 7 елементів, починаючи з 0
і закінчуючи на 6
. Цикл ітеративно проходить ці елементи, що відповідає першим 7 дням роботи магазину.
# Announce store opening every day for 7 days for day in range(7): print(f"Good morning! The store is now open on day {day}.")
Примітка
Послідовність починається з
0
і закінчується на6
. Це відбувається тому, що Python часто починає відлік з0
, що зменшує потребу коригувати індексацію у багатьох випадках.
Два аргументи
Коли вказано два аргументи, наприклад 25
(start
) і 32
(stop
), range()
створює послідовність від 25
до 31
(оскільки значення stop
не входить до послідовності).
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Примітка
За такого способу індексації, де кінцевий елемент виключається, можна легко обчислити кількість елементів у послідовності, віднявши аргумент
start
від аргументуstop
. Наприклад,32 - 25 = 7
, тобто у послідовності 7 елементів.
Три аргументи
Додавши третій аргумент до range()
, ви вводите значення step
, яке визначає крок між кожним числом у послідовності.
У цьому прикладі range()
приймає 1
(start
), 13
(stop
) та 3
(step
), утворюючи числа 1, 4, 7, 10
. Вони можуть позначати початок змін співробітників протягом 12-годинного робочого дня.
# Schedule staff shifts every three hours throughout a 12-hour day for hour in range(1, 13, 3): print(f"Staff shift starts at hour {hour}.")
Приклад застосування
За допомогою функції range()
можна запланувати завдання на кожен день тижня, щоб усі відділи магазину були охоплені.
Цей цикл виконується 7 разів, оскільки range(7)
створює числа від 0
до 6
(усього 7 елементів). У кожній ітерації змінна day
приймає значення від 0
до 6
, які потім використовуються для доступу до елементів списків weekly_tasks
та weekdays
.
# List of daily tasks for a week weekly_tasks = [ "Restock Fruits", "Clean Dairy Section", "Review Meat Inventory", "Restock Vegetables", "Check Bakery Expiry Dates", "Organize Front Displays", "Prepare Weekly Sales Report" ] # List of weekdays corresponding to each task weekdays = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] # Loop through each day using the range function for day in range(7): task = weekly_tasks[day] # Access the task corresponding to the current day weekday = weekdays[day] # Access the corresponding weekday print(f"{weekday} Task: {task}")
Swipe to start coding
Використайте два списки — weekdays
та daily_promotions
— для виведення акції, призначеної кожному дню тижня.
- Використайте цикл
for
з функцієюrange()
, щоб ітеруватися за індексами списків. - На кожній ітерації:
- Отримайте поточний
weekday
зі спискуweekdays
. - Отримайте відповідну акцію з
daily_promotions
за тим самим індексом.
- Отримайте поточний
- Виведіть обидва значення у вказаному форматі.
Вимоги до виводу
- Для кожного дня виведіть:
<weekday>: Promotion on <promotion>
Примітка
Переконайтеся, що обидва списки мають однакову кількість елементів, щоб уникнути помилок індексації.
Рішення
Дякуємо за ваш відгук!