Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Функції-генератори | Повернення значень
Посібник з функцій Python
course content

Зміст курсу

Посібник з функцій Python

Посібник з функцій Python

1. Що Таке Функція в Python?
2. Специфікація Аргументів Функції
3. Довільні Аргументи
4. Повернення значень
5. Деякі поглиблені теми

bookФункції-генератори

У Python функція-генератор — це особливий тип функції, що використовує ключове слово yield замість return, щоб генерувати послідовність значень. Коли викликається функція-генератор, вона повертає об'єкт ітератора, який можна ітерувати, щоб отримувати значення по одному.

Основна перевага функцій-генераторів полягає у їх ефективності використання пам'яті. Функції-генератори створюють значення по мірі необхідності, а не генерують цілу послідовність наперед. Це робить їх ефективними за пам'ятю, особливо коли мова йде про великі набори даних або нескінченні послідовності.

Давайте розглянемо приклад простого генератора:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling next() to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling next() to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Давайте детальніше розберемо кожен крок:

Крок 1: Визначення генератора імені для кота

На цьому кроці ми створюємо функцію cat_name_generator, яка є генератором. Генератор використовує ключове слово yield для послідовного повернення значень. У нашому випадку генератор повертає імена котів із списку cat_names.

Крок 2: Створення екземпляра генератора

Тут ми створюємо екземпляр генератора, викликаючи функцію cat_name_generator(). Тепер cat_name_gen є об'єктом генератора, який можна використовувати для отримання імен котів.

Крок 3: Виклик next() для отримання першого імені

Ми викликаємо функцію next(), щоб отримати перше значення з генератора. Генератор працює до першого виразу yield, повертає значення "Whiskers" і зупиняється. Це значення присвоюється змінній first_cat_name, і ми його виводимо за допомогою print().

Після виконання цих кроків ми отримуємо наступний вивід:

Таким чином, ми отримали перше ім'я кота використовуючи генератор імен котів та функцію next().

Крок 4: Виклик next() для отримання другого імені

Тепер ми знову викликаємо next(), щоб отримати наступне значення з генератора. Генератор продовжує роботу з того місця, де він зупинився (після першого yield). Якщо більше немає значень для повернення, next() поверне помилку. Після виконання цих кроків ми отримуємо наступний вивід:

Отже, ми отримали друге ім'я кота "Fluffy".

Завдання
test

Swipe to show code editor

Створіть генератор, що генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" та так далі. Кожного разу, коли ви викликаєте next(), генератор має повертати новий унікальний ідентифікатор.

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
toggle bottom row

bookФункції-генератори

У Python функція-генератор — це особливий тип функції, що використовує ключове слово yield замість return, щоб генерувати послідовність значень. Коли викликається функція-генератор, вона повертає об'єкт ітератора, який можна ітерувати, щоб отримувати значення по одному.

Основна перевага функцій-генераторів полягає у їх ефективності використання пам'яті. Функції-генератори створюють значення по мірі необхідності, а не генерують цілу послідовність наперед. Це робить їх ефективними за пам'ятю, особливо коли мова йде про великі набори даних або нескінченні послідовності.

Давайте розглянемо приклад простого генератора:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling next() to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling next() to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Давайте детальніше розберемо кожен крок:

Крок 1: Визначення генератора імені для кота

На цьому кроці ми створюємо функцію cat_name_generator, яка є генератором. Генератор використовує ключове слово yield для послідовного повернення значень. У нашому випадку генератор повертає імена котів із списку cat_names.

Крок 2: Створення екземпляра генератора

Тут ми створюємо екземпляр генератора, викликаючи функцію cat_name_generator(). Тепер cat_name_gen є об'єктом генератора, який можна використовувати для отримання імен котів.

Крок 3: Виклик next() для отримання першого імені

Ми викликаємо функцію next(), щоб отримати перше значення з генератора. Генератор працює до першого виразу yield, повертає значення "Whiskers" і зупиняється. Це значення присвоюється змінній first_cat_name, і ми його виводимо за допомогою print().

Після виконання цих кроків ми отримуємо наступний вивід:

Таким чином, ми отримали перше ім'я кота використовуючи генератор імен котів та функцію next().

Крок 4: Виклик next() для отримання другого імені

Тепер ми знову викликаємо next(), щоб отримати наступне значення з генератора. Генератор продовжує роботу з того місця, де він зупинився (після першого yield). Якщо більше немає значень для повернення, next() поверне помилку. Після виконання цих кроків ми отримуємо наступний вивід:

Отже, ми отримали друге ім'я кота "Fluffy".

Завдання
test

Swipe to show code editor

Створіть генератор, що генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" та так далі. Кожного разу, коли ви викликаєте next(), генератор має повертати новий унікальний ідентифікатор.

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
toggle bottom row

bookФункції-генератори

У Python функція-генератор — це особливий тип функції, що використовує ключове слово yield замість return, щоб генерувати послідовність значень. Коли викликається функція-генератор, вона повертає об'єкт ітератора, який можна ітерувати, щоб отримувати значення по одному.

Основна перевага функцій-генераторів полягає у їх ефективності використання пам'яті. Функції-генератори створюють значення по мірі необхідності, а не генерують цілу послідовність наперед. Це робить їх ефективними за пам'ятю, особливо коли мова йде про великі набори даних або нескінченні послідовності.

Давайте розглянемо приклад простого генератора:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling next() to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling next() to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Давайте детальніше розберемо кожен крок:

Крок 1: Визначення генератора імені для кота

На цьому кроці ми створюємо функцію cat_name_generator, яка є генератором. Генератор використовує ключове слово yield для послідовного повернення значень. У нашому випадку генератор повертає імена котів із списку cat_names.

Крок 2: Створення екземпляра генератора

Тут ми створюємо екземпляр генератора, викликаючи функцію cat_name_generator(). Тепер cat_name_gen є об'єктом генератора, який можна використовувати для отримання імен котів.

Крок 3: Виклик next() для отримання першого імені

Ми викликаємо функцію next(), щоб отримати перше значення з генератора. Генератор працює до першого виразу yield, повертає значення "Whiskers" і зупиняється. Це значення присвоюється змінній first_cat_name, і ми його виводимо за допомогою print().

Після виконання цих кроків ми отримуємо наступний вивід:

Таким чином, ми отримали перше ім'я кота використовуючи генератор імен котів та функцію next().

Крок 4: Виклик next() для отримання другого імені

Тепер ми знову викликаємо next(), щоб отримати наступне значення з генератора. Генератор продовжує роботу з того місця, де він зупинився (після першого yield). Якщо більше немає значень для повернення, next() поверне помилку. Після виконання цих кроків ми отримуємо наступний вивід:

Отже, ми отримали друге ім'я кота "Fluffy".

Завдання
test

Swipe to show code editor

Створіть генератор, що генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" та так далі. Кожного разу, коли ви викликаєте next(), генератор має повертати новий унікальний ідентифікатор.

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

У Python функція-генератор — це особливий тип функції, що використовує ключове слово yield замість return, щоб генерувати послідовність значень. Коли викликається функція-генератор, вона повертає об'єкт ітератора, який можна ітерувати, щоб отримувати значення по одному.

Основна перевага функцій-генераторів полягає у їх ефективності використання пам'яті. Функції-генератори створюють значення по мірі необхідності, а не генерують цілу послідовність наперед. Це робить їх ефективними за пам'ятю, особливо коли мова йде про великі набори даних або нескінченні послідовності.

Давайте розглянемо приклад простого генератора:

12345678910111213141516
# Step 1: Defining the cat name generator def cat_name_generator(): cat_names = ["Whiskers", "Fluffy", "Mittens", "Shadow", "Oliver"] for name in cat_names: yield name # Step 2: Creating an instance of the generator cat_name_gen = cat_name_generator() # Step 3: Calling next() to get the first name first_cat_name = next(cat_name_gen) print(first_cat_name) ## Step 4: Calling next() to get the second name second_cat_name = next(cat_name_gen) print(second_cat_name)
copy

Давайте детальніше розберемо кожен крок:

Крок 1: Визначення генератора імені для кота

На цьому кроці ми створюємо функцію cat_name_generator, яка є генератором. Генератор використовує ключове слово yield для послідовного повернення значень. У нашому випадку генератор повертає імена котів із списку cat_names.

Крок 2: Створення екземпляра генератора

Тут ми створюємо екземпляр генератора, викликаючи функцію cat_name_generator(). Тепер cat_name_gen є об'єктом генератора, який можна використовувати для отримання імен котів.

Крок 3: Виклик next() для отримання першого імені

Ми викликаємо функцію next(), щоб отримати перше значення з генератора. Генератор працює до першого виразу yield, повертає значення "Whiskers" і зупиняється. Це значення присвоюється змінній first_cat_name, і ми його виводимо за допомогою print().

Після виконання цих кроків ми отримуємо наступний вивід:

Таким чином, ми отримали перше ім'я кота використовуючи генератор імен котів та функцію next().

Крок 4: Виклик next() для отримання другого імені

Тепер ми знову викликаємо next(), щоб отримати наступне значення з генератора. Генератор продовжує роботу з того місця, де він зупинився (після першого yield). Якщо більше немає значень для повернення, next() поверне помилку. Після виконання цих кроків ми отримуємо наступний вивід:

Отже, ми отримали друге ім'я кота "Fluffy".

Завдання
test

Swipe to show code editor

Створіть генератор, що генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" та так далі. Кожного разу, коли ви викликаєте next(), генератор має повертати новий унікальний ідентифікатор.

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Секція 4. Розділ 4
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
We're sorry to hear that something went wrong. What happened?
some-alt