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

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

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

Потрібно відфільтрувати числа, піднести їх до квадрата та використати результат один раз або кілька разів. Варіант визначає 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 list вхідні числа
threshold int нижня межа фільтра

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

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

Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не створює предметні змінні. У кожному завданні самостійно присвойте потрібним вхідним змінним показані значення. Результуючі й проміжні змінні створюйте звичайними присвоєннями. Імена з префіксом alp_ службові.

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: LR34_Прізвище_Група_VNN.pdf.