Typy błędów w Pythonie

Typy błędów w Pythonie
Koderzy, zwłaszcza nowicjusze, mają tendencję do napotykania błędów. Błąd w kodzie zapobiega pełnemu uruchomieniu kodu lub w sposób zamierzony. W szczególności błędy rzucone przez Pythona należą do jednej z trzech kategorii: błędy składniowe, błędy czasu wykonywania lub błędy logiczne. W tym samouczku będziemy się uczyć różnych rodzajów błędów, które Python może rzucić.

Błędy składniowe

Błąd składni lub błąd parsowania to rodzaj błędu, który jest rzucany, gdy Python nie do końca rozumie, co próbujesz powiedzieć. Musimy komunikować się z tłumaczem Python to, co chcemy powiedzieć, podobnie jak język mówiony. Na przykład możesz powiedzieć swojemu przyjacielowi wszystkiego najlepszego z okazji urodzin. Ale jeśli oszukujesz słowo szczęśliwy i zamiast tego zapomnisz napisać H i. W ten sam sposób Python ma zestaw bardzo sztywnych zasad i słów. Kiedy złamiesz reguły lub napisz słowa z błędem, tłumacz Python po prostu nie może zrozumieć, co próbujesz powiedzieć, a to spowoduje błąd składni. Ten błąd można po prostu naprawić, przeglądając składnię i naprawiając go, aby rzeczywiście przestrzegać reguł ustawionych przez Pythona.

Przykład nr 1: Zapomniana składnia

główny.py
name = "Jakie jest twoje imię? "
Jeśli nazwa != „Linux”
Drukuj (nazwa „Hello % s”)

Wyjście:

Plik "C: \ Users \ Kalya \ PycharmProjects \ pythonproject \ main.py ", wiersz 3
Jeśli nazwa != „Linux”
^
SkładniaSerorror: oczekiwane „:”
Proces zakończony kodem wyjściowym 1

To zdecydowanie najprostszy przykład błędu składni. Zasady Pythona stanowią, że na końcu oświadczenia IF musi istnieć okrężnica, a tutaj po prostu pominęliśmy. Tylko to spieprzyło Pythona - nie rozumie, o co prosisz. Tak więc prostą poprawką jest dodanie okrężnicy na końcu instrukcji IF. I co dziwne, powie ci, co jest nie tak i jak to naprawić. W takim przypadku mówi „oczekiwano:”. Mówi ci, że ma nadzieję na okrężnicę.

Przykład nr 2: Niewłaściwa składnia

główny.py
Bo Im Range (5):
Drukuj (i)

Wyjście:

Plik "C: \ Users \ Kalya \ PycharmProjects \ pythonproject \ main.py ", wiersz 1
Bo Im Range (5):
^^
Składnia
Proces zakończony kodem wyjściowym 1

Tutaj pisałem IM zamiast w. Rzucił więc błąd składni, ponieważ użyte słowo jest złe. W Pythonie zestaw słów to specjalne słowa i mają już znaczenia zdefiniowane przez siusiu. Kiedy używasz słowa, które nie znajduje się w tym zestawie, nie rozpoznaje go i idzie huh?

Przykład nr 3: Brakujące lub niewłaściwe nawiasy

główny.py
Słownik = [„Jim”: 24, „Jenny”: 23, „Jack”: 30]
Drukuj (słownik)

Wyjście:

Plik "C: \ Users \ Kalya \ PycharmProjects \ pythonproject \ main.py ", wiersz 1
Słownik = [„Jim”: 24, „Jenny”: 23, „Jack”: 30]
^
Składnia
Proces zakończony kodem wyjściowym 1

W tym przypadku staramy się użyć słownika w Pythonie. Ale nie użyliśmy kręconych aparatów ortodontycznych i zamiast tego użyliśmy kwadratowych aparatów ortodontycznych, które prowadzą do błędu. Zgodnie z zasadami w Pythonie dla słownika używamy kręconych aparatów ortodontycznych.

Błędy czasu wykonawczego

Możesz uzyskać błąd, nawet jeśli nie popełniłeś żadnych błędów składniowych. Gdy błąd występuje podczas wykonywania kodu, jest on również znany jako wyjątek lub błąd środowiska wykonawczego. Zaczynasz więc pisać kod i zaczyna wykonywać bez żadnych problemów. Ale po prostu zatrzymuje się i mówi, że jest błąd - nazywa się to wyjątkiem.

Przykład nr 1: Próba podzielenia łańcucha przez liczbę całkowitą

główny.py
name = „Linuxhint”
Wiek = 24
Total = nazwa / wiek
Drukuj (ogółem)

Wyjście:

Plik "C: \ Users \ Kalya \ PycharmProjects \ pythonproject \ main.py ", linia 4, w
Total = nazwa / wiek
TypeError: Nieobsługiwane typ (y) operand dla /: „str” i „int”
Proces zakończony kodem wyjściowym 1

Tutaj staramy się podzielić ciąg przez liczbę całkowitą, a to nazywa się wyjątek lub błąd czasu wykonywania.

Przykład nr 2: Próba dostępu do pliku, który nie istnieje

główny.py
f = otwarty (plik '.txt ', „r”)
Drukuj (f.Czytać())

Wyjście:

Plik "C: \ Users \ Kalya \ PycharmProjects \ pythonproject \ main.py ", linia 1, w
f = otwarty (plik '.txt ', „r”)
FillenotFoundError: [errno 2] Brak takiego pliku lub katalogu: „plik.tekst'
Proces zakończony kodem wyjściowym 1

W tym przypadku wskazujemy na plik, który nie istnieje. Tak więc program działa, ale kończy się wcześnie z komunikatem o błędzie działania, ponieważ nie może zlokalizować tego pliku.

Błędy logiczne

W przeciwieństwie do błędu składni lub błędu czasu wykonywania, błąd logiczny jest znacznie trudniejszy do ustalenia. Jest też o wiele trudniej. Python nie zawiedzie i nie wyświetli żadnych komunikatów o błędach. W takim przypadku program będzie działał i da nam wynik. Ale wynik będzie nieprawidłowy. Więc gdzie jest błąd? W logice programisty.

Przykład nr 1: błąd logiczny

główny.py
x = 5
y = 6
Z = x+y/2
Drukuj („Średnia %f i %f to %f” %(x, y, z))

Wyjście:

Średnia 5.000000 i 6.000000 to 8.000000
Proces zakończony kodem wyjściowym 0

Tutaj średnia 5 i 6 to nie 8! Więc tutaj kod jest wykonywany i wyrzucony z wyniku. Ale początkujący usiadłby tam i drapałby go w głowę, ponieważ wyniki są błędne.

Przykład nr 2: błąd logiczny

główny.py
Słownik = „Jim”: 24, „Jack”: 45, „John”: 60
Dla członka słownika:
wiek = słownik [członek]
Jeśli wiek < 40:
Drukuj („Masz 40 lat lub starsze. Możesz wprowadzić tę stronę.")
w przeciwnym razie:
Drukuj („Jesteś za młody, aby wejść na tę stronę”)

Wyjście:

Masz 40 lat lub starsze. Możesz wprowadzić tę stronę.
Jesteś za młody, aby wejść na tę stronę
Jesteś za młody, aby wejść na tę stronę
Proces zakończony kodem wyjściowym 0

Powodem tego kodu jest wykluczenie osób poniżej 40 roku życia ze strony internetowej. Ale, jak mogłeś zauważyć, programista umieścił mniej niż znak zamiast znaku niż znak po wieku (wiek <40). Both Jack and John are older than 40 but the program says that they are too young to enter this site. Jim who is 24 is allowed because it thinks that he's older than 40. This is a logical problem. It can be solved by changing the greater than/less than sign.

W Python wszystkie błędy, które masz, można podzielić na trzy grupy: składnia, czas wykonania/wyjątek lub błędy logiczne. Zarówno składnia, jak i błąd środowiska wykonawczego spowoduje awarię Pythona. Zazwyczaj wyświetla wiadomość informującą, jak rozwiązać problem i gdzie jest problem. Nie dotyczy to błędu logicznego. Błąd logiczny nie powoduje awarii Pythona, ale raczej zrywa wyniki, które są całkowicie i całkowicie błędne. Tak więc, spośród tych trzech, błędy logiczne są najtrudniejsze do poradzenia sobie, ponieważ nie wiemy, gdzie się znajduje błąd.