Перейти до змісту

ЛР37. Спискові включення і генератори

Коротко про роботу

Потрібно відфільтрувати числа, піднести їх до квадрата та використати результат один раз або кілька разів. Варіант визначає STUDENT_X.

Відкрити робочий зошит Як виконувати лабораторні

1. Умова

Потрібно відфільтрувати числа, піднести їх до квадрата та використати результат один раз або кілька разів.

Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.

2. Що треба знати

Робота виконується після Л1–Л14. Потрібні поняття:

  1. спискове включення
  2. генераторний вираз
  3. sum()
  4. одноразове споживання генератора

Межа матеріалу

Використовуйте поняття, вивчені до Л1–Л14. Не перетворюйте генератор на список до вправи з частковим споживанням.

3. Варіант, вхідні дані та результат

У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.

Вхідні дані

Поле Зміст
values вхідні числа
threshold нижня межа фільтра

Поля результату

Поле Зміст
materialized квадрати значень, що проходять умову відбору
aggregate сума всього сформованого списку
first_pass_sum сума генератора під час першого проходу
second_pass_sum сума того самого генератора під час другого проходу

Назви полів результату не змінюйте.

4. Терміни і правила

Терміни

  • спискове включення — короткий запис побудови нового списку з ітерації та необов’язкової умови.
  • генераторний вираз — лінивий потік значень, які обчислюються під час споживання.
  • одноразове споживання — вже отримані з генератора значення не з’являються повторно.

Правила

  1. До обробки входять значення value >= threshold.
  2. materialized містить квадрати таких значень у початковому порядку.
  3. aggregate — сума всього materialized.
  4. Генератор віддає ті самі квадрати. Перший sum(...) споживає весь генератор, тому другий sum(...) для того самого об’єкта дає 0.

5. Завдання

Завдання 1

Через спискове включення відберіть value >= threshold, піднесіть значення до квадрата та запишіть список у materialized. Суму запишіть у aggregate.

Завдання 2

Створіть генераторний вираз для тих самих квадратів. Не перетворюйте його на список.

Завдання 3

Обчисліть sum(...) для генератора двічі. Перший результат запишіть у first_pass_sum, другий — у second_pass_sum.

6. Перевірка і здача

  1. Запустіть самоперевірку та виправте помилки.
  2. Перезапустіть ядро і виконайте роботу ще раз від початку.
  3. Збережіть .ipynb і PDF з кодом та результатами.

Назва PDF: LR37_Прізвище_Група_VNN.pdf.