Błędy, traceback i jak je czytać
Błędy to dane, a nie powód do paniki. Przeanalizujmy trzy najczęstsze typy i nauczmy się czytać traceback sensownie.
Czerwony tekst błędu nie jest powodem do paniki. Jest dane: Python szczegółowo wyjaśnia, co dokładnie poszło nie tak i gdzie dokładnie szukać problemu. Ucz się spokojnie Czytanie tych wpisów to jedna z najbardziej przydatnych umiejętności dla początkujących.
SyntaxError
Python nawet nie rozumie struktury kodu — w ogóle nie został wykonany. Częściej Jedynym powodem jest brak nawiasu, cudzysłowu lub dwukropku.
print("Привет"
File "broken.py", line 1
print("Привет"
^
SyntaxError: '(' was never closed
NameError
Python napotkał nazwę, która jeszcze nigdzie nie została utworzona przez przypisanie — często jest to po prostu literówka.
print(usr_name)
Traceback (most recent call last):
File "broken2.py", line 1, in <module>
print(usr_name)
^^^^^^^^
NameError: name 'usr_name' is not defined
IndentationError
W Python wcięcie jest częścią składni (wrócimy do tego szczegółowo w rozdziale o warunkach i pętle). Niespójne wcięcia to także błąd:
name = "Cartesian"
print(name)
File "broken3.py", line 2
print(name)
IndentationError: unexpected indent
Anatomia traceback
Traceback najlepsza lektura od dołu do góry najważniejsze informacje poniżej: