Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Генераторні функції | Визначення Значення, Що Повертається Функцією
Quizzes & Challenges
Quizzes
Challenges
/
Підручник з Функцій Python

bookГенераторні функції

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

Розглянемо простий приклад генератора. Ця функція по черзі повертає логіни зі списку:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Принцип роботи генератора полягає в тому, що він дозволяє повертати значення по одному за допомогою ключового слова yield, без збереження всіх значень у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list перебирає список логінів, повертаючи кожен з них через yield і призупиняється в цій точці. При виклику next() генератор продовжує виконання з місця зупинки, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання

Swipe to start coding

Генерація унікальних ідентифікаторів користувачів за допомогою генераторної функції. Функція id_generator() повинна безперервно створювати ідентифікатори на кшталт "ID_1", "ID_2" тощо.

  1. Ініціалізуйте змінну count зі значенням 1, оскільки ідентифікатори починаються з 1.
  2. Використовуйте нескінченний цикл while для безперервної генерації ідентифікаторів.
  3. Застосуйте yield для повернення поточного ідентифікатора у форматі f"ID_{count}".
  4. Збільшуйте count на 1 після кожної ітерації.
  5. Ініціалізуйте генераторний об'єкт id_gen, викликавши id_generator().

Рішення

Все було зрозуміло?

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

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

Секція 4. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

bookГенераторні функції

Свайпніть щоб показати меню

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

Розглянемо простий приклад генератора. Ця функція по черзі повертає логіни зі списку:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Принцип роботи генератора полягає в тому, що він дозволяє повертати значення по одному за допомогою ключового слова yield, без збереження всіх значень у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list перебирає список логінів, повертаючи кожен з них через yield і призупиняється в цій точці. При виклику next() генератор продовжує виконання з місця зупинки, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання

Swipe to start coding

Генерація унікальних ідентифікаторів користувачів за допомогою генераторної функції. Функція id_generator() повинна безперервно створювати ідентифікатори на кшталт "ID_1", "ID_2" тощо.

  1. Ініціалізуйте змінну count зі значенням 1, оскільки ідентифікатори починаються з 1.
  2. Використовуйте нескінченний цикл while для безперервної генерації ідентифікаторів.
  3. Застосуйте yield для повернення поточного ідентифікатора у форматі f"ID_{count}".
  4. Збільшуйте count на 1 після кожної ітерації.
  5. Ініціалізуйте генераторний об'єкт id_gen, викликавши id_generator().

Рішення

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

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

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

Секція 4. Розділ 4
single

single

some-alt