Python

Підручник з відслідковування Python

Підручник з відслідковування Python
Як тільки під час виконання коду створюється виняток, Python відображає зворотний зв'язок. Звернення трасування здається звітом на Python, який включає виклики функцій, зроблені в певному місці коду, тобто.e., якщо у вас є помилка, пропонується скинути її назад (відстеження). Traceback може надати детальну інформацію про те, що сталося з кодом, якщо код отримує помилку. Такі зворотні відстеження можуть виглядати трохи виснажливо, але вони можуть бути справді корисними, поки ви не знімете їх і не побачите, чому він намагається вас навчити. У зворотному відстеженні Python є багато даних, які допоможуть вам проаналізувати та виправити причину проблеми, що генерується у вашому коді.

Інтерпретувати Traceback:

Перегляд деяких відстежень може дати кращу інтерпретацію знань, які вони надають, щоб ви могли щось з цього отримати. Давайте подивимось на тлумачення того, як основним винятком може бути зворотний зв'язок. Ось приклад простого коду, що генерує помилку зворотного відстеження у виконанні Spyder (Python 3).

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

Білий: Traceback (останній останній дзвінок) - це оператор зворотного відстеження. З іншого боку, в останньому рядку біла частина відображає відповідну інформацію про помилку.

Зелений: Повідомлення про ім’я та розташування файлу має помилку.

Синій: Показує номер рядка файлу, де сталася помилка.

Жовтий: Він відображає фактичний рядок, де з’явився виняток.

Червоний: Тип помилки.

Ось кілька важливих помилок у зворотному відстеженні:

NameError
Помилка IndexError
KeyError
Помилка типу
valueError
ImportError / ModuleNotFound

Помилка імені:
Щоразу, коли ви хочете інтерпретувати змінну, яка не була вказана в коді, відображається NameError. Ось простий приклад зворотного відстеження NameError. У нас є змінна 'число' визначається з деяким значенням, тоді як у друк заяву, ми надрукували 'оніміння', що не визначено ніде в коді. Давайте запустимо цей код і перевіримо, що відбувається.

Ви можете бачити, що відбулася трасування зворотного зв’язку NameError, оскільки ми не визначили змінну 'numb', тож як її можна роздрукувати. Ось чому ця програма показує NameError і обробляє його додатковою інформацією в останньому рядку з білим і червоним текстом. Жовтий текст показує точний код, де відбувається помилка.

Помилка індексу:

Помилка IndexError створюється, коли в коді визначена серія, яка недоступна. Ми визначили a список названий "новий" маючи 5 покажчиків з деякими значеннями в ньому. Після цього ми повинні вказати команду print, щоб вивести значення на індекс номер 9.

Коли ми виконуємо цей код, він генерує IndexError, визначаючи індекс поза діапазоном. Оскільки ми визначили список з 5 індексів, тому надрукований номер індексу, який становить 9, не може отримати доступ, оскільки він не входить в наш діапазон.

Помилка ключа:

Python генерує ключову помилку при спробі зв’язатися з ключ який є не визначено або нанесена на карту, особливо з a словник. Це більше схоже на IndexError. Отже, давайте розглянемо простий приклад словника з іменем "випадковий" з двома ключами, визначеними в ньому, з деякими значеннями, присвоєними цим ключам. У наступному рядку ми надрукували названий ключ "А" у заяві для друку.

О! Ми отримали відстеження KeyError. Це пов’язано з неправильним ключем, наведеним у операторі print, який не визначений у словнику. Можна помилитися, надавши ключ з великої літери, тоді як у словнику визначений ключ з малої літери.

Помилка типу:

Помилка TypeError визначається як виняток, який виникає, коли якась операція чи метод перекреслені на непридатний тип сутності або змінної. Ми маємо приклад простої змінної, яка приймає два значення, тоді як цей рядок додає обидва значення. Перше значення - це тип рядка, а друге - цілочисельний тип. Оператор друку друкує результат додавання.

Коли цей код виконується, він викликає виняток. Цей виняток стосується об’єднаного неправильного типу об’єкта. Пояснюється, що ви не можете додати змінну типу рядка із цілою змінною типу.

Помилка значення:

Помилка значення визначається як виняток, який виникає лише тоді, коли деякі вбудований метод приймає аргумент правильного типу але неправильне значення у цьому. Давайте подивимось на невеликий приклад. Ми використовуємо вбудований метод int () з деяким значенням рядка в операторі print.

Коли ви виконуєте цей однорядковий код, він генерує ValueError, оскільки ми використовуємо цілочисельну функцію типу, надаючи їй значення рядка для виконання. Ось чому він покаже, що у функції int () є недійсне значення.

З іншого боку, якщо ви надасте йому деяке дробове значення, воно перетворить його у ціле число.

Цей код виводить 11, оскільки він приймає лише цілу частину, тоді як десяткова частина повністю ігнорується.

Помилка імпорту / модуль не знайдено:

Іноді доводиться імпорт деякі пакети або модулі у коді python використовувати спеціальні функціональні можливості через них. Ви знайдете трасування зворотного зв’язку ImportError, коли дещо помилково стосується оператора Import у коді. Ця помилка відстеження трапляється, коли ви є не в змозі до знайти конкретний модуль або щось із пакету. Тут ми імпортували два модулі, "піп" і 'java', у нашому коді.

Під час виконання цього коду буде надано ModuleNotFoundError trackback. Це тому, що імпортований модуль 'java' не підтримується бібліотекою python. З іншого боку, це не дає винятку щодо імпорту модуля 'pip', оскільки це модуль, що підтримується Python.

Висновок:

Відстеження Python забезпечує чудові знання, які допоможуть вам зрозуміти, що в коді відбувається неправильно. Незалежно від того, чи робите ви це вперше, чи просто не розумієте, що це робить, генерація відстеження може бути трохи лякаючою. Щоб стати сильнішим програмістом на Python, важливо дізнатися, які деталі надає відстеження Python.

Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...