ЛР27. Керування виконанням у Python і читання зворотного трасування стека
Коротко про роботу
Короткі фрагменти Python перевіряють істинність об’єктів, зміну стану та помилку перетворення під час виконання. Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Короткі фрагменти Python перевіряють істинність об’єктів, зміну стану та помилку перетворення під час виконання.
Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.
2. Що треба знати
Робота виконується після Л1–Л11. Потрібні поняття:
- істинність об’єктів Python
- керування виконанням
- зворотне трасування стека
- помилка під час виконання
Межа матеріалу
Використовуйте поняття, вивчені до Л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 друкує після необробленого винятку.
Правила
text_truthyіnumber_truthyвизначайте через звичайніif, без викликуbool(...).- Для трасування почніть з
trace_result = trace_start; дляiвід0доtrace_steps - 1додавайтеiдо стану. zero_divisorдорівнює нулю. Небезпечний вираз ділення не виконуйте під часRun All.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. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR27_Прізвище_Група_VNN.pdf.