Rozdział 3 · Twój pierwszy program w Python

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.

broken.py
print("Привет"
Traceback
  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.

broken2.py
print(usr_name)
Traceback
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:

broken3.py
name = "Cartesian"
    print(name)
Traceback
  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:

Traceback (most recent call last):nagłówek – informuje, że następna będzie łańcuch połączeńFile "privet.py", line 3GDZIE – który plik i który łańcuch znakówprint(„Cześć”sama problematyczna łańcuch znaków koduSyntaxError: ...CO I DLACZEGO – TYP BŁĘDU I WYJAŚNIENIE
Anatomia traceback – czytanie od dołu do góry
Gdzie?"łańcuch znaków i plikCo?rodzaj błęduDlaczego?wyjaśnienieFixi znowu biegnie
Kolejność postępowania z każdym błędem
Nie bój się czerwonego tekstu
Błąd — to Python, uczciwie wyjaśniający, co się stało. Profesjonalni programiści widzą traceback- dziesiątki razy dziennie — różnica polega tylko na tym, że potrafią szybko znaleźć w nim potrzebną linię. Teraz i ty potrafisz.
Praktyka: Przeczytaj traceback (NameError)
Interaktywny laptop bezpośrednio w przeglądarce – znajdź i poprawij literówkę
Otwórz praktykę →