Wprowadzenie do błędów

Python dla programistów – poziom średniozaawansowany

Jasmin Ludolf

Senior Data Science Content Developer

Czym jest błąd?

  • Kod naruszający regułę
  • Błąd = wyjątek
  • Powoduje zakończenie programu!

Hierarchia wybranych wyjątków w Pythonie

1 https://docs.python.org/3/library/exceptions.html#exception-hierarchy
Python dla programistów – poziom średniozaawansowany

TypeError

  • Niezgodne typy danych
"Hello" + 5

Wynik TypeError informujący, że łańcuchów i liczb całkowitych nie można łączyć

Python dla programistów – poziom średniozaawansowany

ValueError

float("Hello")

Wynik ValueError potwierdzający, że łańcucha 'Hello' nie można przekształcić na float

  • Wartość spoza dopuszczalnego zakresu
float("2")

Wynik pokazujący wartość 2.0 bez błędu

Python dla programistów – poziom średniozaawansowany

Tracebacki

Komunikat traceback

Python dla programistów – poziom średniozaawansowany

Tracebacki

Komunikat traceback z wyróżnionym typem błędu

Python dla programistów – poziom średniozaawansowany

Tracebacki

Komunikat traceback z wyróżnionym kodem, który spowodował błąd

Python dla programistów – poziom średniozaawansowany

Kod w pakietach

  • Pakiety zawierają cudzy kod, np. niestandardowe funkcje
  • Określane jako kod źródłowy
  • pip install <package> pobiera kod źródłowy do lokalnego środowiska
  • Funkcja pd.read_csv() z pandas wykonuje kod tej funkcji w tle
Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

# Import pandas package
import pandas as pd

# Create pandas DataFrame                 
products = pd.DataFrame({"ID": "ABC1",
                         "price": 29.99})

# Try to access the non-existent "tag" column
products["tag"]
Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback przy próbie filtrowania DataFrame pandas po nieistniejącej kolumnie

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback pokazujący plik, który spowodował błąd, wraz z typem błędu KeyError

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback z wyróżnioną linią 3803

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback z wyróżnionym plikiem base.py

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback z wyróżnionym KeyError

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback pokazujący linię kodu, która spowodowała błąd

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback pokazujący kod celowo zwracający błąd

Python dla programistów – poziom średniozaawansowany

Tracebacki z pakietów

Traceback z wyróżnionym słowem Raised

Python dla programistów – poziom średniozaawansowany

Czas na ćwiczenia!

Python dla programistów – poziom średniozaawansowany

Preparing Video For Download...