
- •Міністерство освіти і науки україни
- •Укладачі: Романюк а. Б., канд. Техн. Наук, ст. Викладач
- •1.2 Функції накопичення
- •Функція використовує рекурсію – техніку яка буде розглядатися в подальшому. Перестановки слів у наборах слів корисно використовувати при створенні даних для тестування граматик.
- •1.3 Функції вищого рівня
- •1.4 Зазначені (поіменовані) аргументи.
- •2. Розробка програми
- •2.1 Структура модуля в Python
- •2.2 Багатомодульні програми
- •2.3 Помилки
- •2.4 Техніка налагодження (зневаджування) програм
- •3. Розробка алгоритму програми
- •3.1 Рекурсія
- •3.2 Динамічне програмування
- •4. Приклади бібліотек Python
- •4.1 Matplotlib
- •4.2 NetworkX
- •4.3 Csv
- •4.4 NumPy
- •4.5 Інші бібліотеки
- •Порядок виконання роботи
- •Зміст звіту
- •Інтернет посилання
- •Методичні вказівки
- •Укладачі: Романюк Андрій Богданович
2.4 Техніка налагодження (зневаджування) програм
Оскільки помилки в програмі найчастіше є результатом не правильних припущень програміста, то перше що потрібно зробити для виявлення помилок, це перевірити ці припущення.Потрібно локалізувати проблему додавши print твердження до програми, для перегляду значень важливих змінних та для індикації виконання програми.
Якщо програма генерує помилку при її запуску то інтерпретатор виводить на екран вміст стеку, де точно вказано місце помилки. Якщо програма залежить від вхідних даних, потрібно спробувати мінімізувати їх до розміру, який продовжує викликати помилку.
Якщо проблема локалізована чи у функції чи в рядку програми, потрібно вирішити що працює не так, як потрібно. Для цього можна відтворити за допомогою інтерпретатора та командної стрічки цю проблему, додати чи змінити деякі змінні. Потрібно перевірити розуміння тексту програми прочитавши документацію, чи проаналізувавши подібні приклади. Також корисно спробувати пояснити свою програму комусь ще – хто зможе побачити ваші проблеми.
ВPython реалізовано зневаджувач програм ( debugger ) який дозволяє відслідковувати виконання програм, контролювати значення змінних, встановлювати місця зупинки (контрольні точки) виконання програми( breakpoints), та покроково виконувати фрагменти програм. Застосувати зневаджувач для своєї програми (mymodule) та її функцій можна наступними чином:
|
В результаті, на екрані буде відображене запрошення (Pdb) , для вводу інструкцій для зневаджувача. Ввівшиhelp можна переглянути повний список команд. Введенняstep (або коротко s) приведе до виконання поточного рядка програми і її виконання зупиниться. Якщо в цьому рядку є виклик функції то ця функція буде викликана, а її виконання зупиниться на першому рядку. Введенняnext (n) приводить до подібного результату, але виконання зупиниться на наступному рядку поточної функції. Команда break ( b) використовується для створення або перегляду контрольних точок. Команда continue ( c) дозволяє продовжити виконання програми до наступної контрольної точки. Введення імені змінної дозволяє переглянути її значення.
Розглянемо приклад використання зневаджувача Python для виявлення проблем в функції find_words(). Проблеми виникали при другому виклику функції. Спочатку функція викликається без використання зневаджувача #1, і з мінімальним набором вхідних даних. При наступному виклику використовуємо зневаджувач #2.
|
Потрібно використати тільки дві команди зневаджувача: step для початку виконання функції (ввійти у функцію), та args для перегляду значень її аргументів (або параметрів). Відразу зрозуміло , що зміннаresult має початкове значення ['cat'], і це не є пустий список, як очікувалося. Зневаджувач допоміг локалізувати проблему та поглибив розуміння функцій вPython.