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

ЛР27. Керування виконанням у Python і читання зворотного трасування стека

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

Короткі фрагменти Python перевіряють істинність об’єктів, зміну стану та помилку перетворення під час виконання. Варіант визначає STUDENT_X.

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

1. Умова

Короткі фрагменти Python перевіряють істинність об’єктів, зміну стану та помилку перетворення під час виконання.

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

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

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

  1. істинність об’єктів Python
  2. керування виконанням
  3. зворотне трасування стека
  4. помилка під час виконання

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

Використовуйте поняття, вивчені до Л1–Л11. Не використовуйте try/except: обробку винятків буде введено пізніше. Небезпечне ділення перевірте умовою до виконання.

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

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

Вхідні дані

Поле Зміст
truth_text рядок для перевірки істинності
truth_number ціле для перевірки істинності
trace_start початкове значення накопичувача
trace_steps кількість кроків
numerator чисельник контрольного ділення
zero_divisor нульовий дільник

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

Поле Зміст
text_truthy істинність truth_text
number_truthy істинність truth_number
trace_result фінальне значення накопичувача
error_name назва помилки ділення на нуль

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

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

Терміни

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

Правила

  1. text_truthy і number_truthy визначайте через звичайні if, без виклику bool(...).
  2. Для трасування почніть з trace_result = trace_start; для i від 0 до trace_steps - 1 додавайте i до стану.
  3. zero_divisor дорівнює нулю. Небезпечний вираз ділення не виконуйте під час Run All.
  4. error_name має містити ZeroDivisionError, який уже показано в лекційному прикладі зворотного трасування стека.

Фрагмент для трасування

Початковий стан задає trace_start, а кількість ітерацій — trace_steps.

result = trace_start
for i in range(trace_steps):
    result += i

Спочатку заповніть таблицю трасування вручну. Після цього виконайте код і порівняйте прогноз із фактичним значенням.

5. Завдання

Завдання 1

Перевірте truth_text і truth_number у звичайних умовах. Запишіть text_truthy і number_truthy.

Завдання 2

Обчисліть trace_result, послідовно додаючи i від 0 до trace_steps - 1. Виведіть результат.

Завдання 3

Перевірте zero_divisor через if і не виконуйте ділення, якщо він нульовий. Запишіть error_name = "ZeroDivisionError".

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

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

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