При створенні програм мовою Python, не рідко можуть виникати помилки. Це трапляється із усіма програмістами, а особливо із початківцями, тому не потрібно дуже засмучуватися, коли при виконанні вашої програми з'являється страшне червоне повідомлення. А от знати основні помилки та вміти їх обробляти дуже потрібно. Тому, давайте ознайомимося із основними помилками мови Python, які найчастіше зустрічаються у початківців:
BaseException - базовий виняток, від якого беруть початок всі інші:
Виникає ValueError, яка означає, що введене значення не є дійсним число. І все,на цьому наша програма припиняє роботу. Якщо ж ми передбачимо дану помилку, і дії в випадку її виникнення, то ми зможемо зробити так, аби програма не закрилася, а продовжила виконувати свою функцію. Для цього існують оператори try та except:
try:
дії, які потрібно виконати
except вид_помилки:
дії, при виникненні даної помилки
Тобто, наприклад, якщо при виконанні нашої програми користувач ввів замість числа текст, вивелося би повідомлення що він не правильно ввів дані та повторно запитати дані у нього:
try:
a=float(input())
except ValueError:
print("Введіть число, розділивши цілу та дробову частину крапкою")
a=float(input())
try:
b=float(input())
except ValueError:
print("Введіть число, розділивши цілу та дробову частину крапкою")
b=float(input())
print(a+b)
Введемо числа 3.6 та 2,4 та подивимося, що вийде:
Як ви помітили, друге число ми ввели із помилкою, тому вивелося повідомлення і програма попросила ввести значення ще раз, що ми і зробили.
Також існують ще два не обов'язкові оператори, які використовують для обробки помилок: else finally:
try:
дії, які потрібно виконати
except вид_помилки:
дії, при виникненні даної помилки
else:
дії, які виконується якщо помилка не виникла
finally:
дії, які будуть виконуватися в будь-якому випадку
Наприклад, створимо програму, яка буде ділити одне число на інше. Та ми знаємо, що ділити на 0 не можна, тому, якщо друге число буде дорівнювати 0, програма видасть помилку. А ми передбачимо такий хід подій і застосуємо оператори try, except та else:
a=float(input())
b=float(input())
try:
с=a/b
except ArithmeticError:
print("Ділення на 0")
else:
print(c)
Спочатку введемо числа 4 і 2, а потім числа 4 і 0 та поспостерігаємо за результатом.
Список помилок взятий з сайту pythonworld.ru
Дізнатися більше про Python: proginschool.inf.ua
BaseException - базовий виняток, від якого беруть початок всі інші:
- StopIteration - породжується вбудованою функцією next, якщо в Ітератор більше немає елементів.
- ArithmeticError - арифметична помилка.
- AttributeError - об'єкт не має даного атрибута (значення або методу).
- BufferError - операція, пов'язана з буфером, не може бути виконана.
- EOFError - функція натрапила на кінець файлу і не змогла прочитати те, що хотіла.
- ImportError - не вдалося імпортування модуля або його атрибута.
- LookupError - некоректний індекс або ключ.
- MemoryError - недостатньо пам'яті.
- NameError - не знайдено змінної з таким ім'ям.
- RuntimeError - виникає, коли винятку не потрапляє ні під одну з інших категорій.
- SyntaxError - синтаксична помилка.
- SystemError - внутрішня помилка.
- TypeError - операція застосована до об'єкта невідповідного типу.
- ValueError - функція отримує аргумент правильного типу, але некоректного значення.
- UnicodeError - помилка, пов'язана з кодуванням / розкодуванням unicode в рядках.
- Warning - попередження.
Наприклад, у нас є програма, яка запитує два числа у користувача, а виводить їх суму:
a=float(input())Але що станеться, якщо користувач замість числа введе текст, або розділить цілу та дробову частину, комою, а не крапкою? А от що:
b=float(input())
print(a+b)
Виникає ValueError, яка означає, що введене значення не є дійсним число. І все,на цьому наша програма припиняє роботу. Якщо ж ми передбачимо дану помилку, і дії в випадку її виникнення, то ми зможемо зробити так, аби програма не закрилася, а продовжила виконувати свою функцію. Для цього існують оператори try та except:
try:
дії, які потрібно виконати
except вид_помилки:
дії, при виникненні даної помилки
Тобто, наприклад, якщо при виконанні нашої програми користувач ввів замість числа текст, вивелося би повідомлення що він не правильно ввів дані та повторно запитати дані у нього:
try:
a=float(input())
except ValueError:
print("Введіть число, розділивши цілу та дробову частину крапкою")
a=float(input())
try:
b=float(input())
except ValueError:
print("Введіть число, розділивши цілу та дробову частину крапкою")
b=float(input())
print(a+b)
Введемо числа 3.6 та 2,4 та подивимося, що вийде:
Як ви помітили, друге число ми ввели із помилкою, тому вивелося повідомлення і програма попросила ввести значення ще раз, що ми і зробили.
Також існують ще два не обов'язкові оператори, які використовують для обробки помилок: else finally:
try:
дії, які потрібно виконати
except вид_помилки:
дії, при виникненні даної помилки
else:
дії, які виконується якщо помилка не виникла
finally:
дії, які будуть виконуватися в будь-якому випадку
Наприклад, створимо програму, яка буде ділити одне число на інше. Та ми знаємо, що ділити на 0 не можна, тому, якщо друге число буде дорівнювати 0, програма видасть помилку. А ми передбачимо такий хід подій і застосуємо оператори try, except та else:
a=float(input())
b=float(input())
try:
с=a/b
except ArithmeticError:
print("Ділення на 0")
else:
print(c)
Спочатку введемо числа 4 і 2, а потім числа 4 і 0 та поспостерігаємо за результатом.
Список помилок взятий з сайту pythonworld.ru
Дізнатися більше про Python: proginschool.inf.ua
Немає коментарів:
Дописати коментар