W tym artykule dowiemy się o asercji w Pythonie za pomocą assert.
Co to jest asercja?
Asercje to stwierdzenia, które potwierdzają lub stwierdzają pewien fakt w programie. Na przykład, pisząc funkcję dzielenia, masz pewność, że dzielnik nie powinien wynosić zero, twierdzisz, że dzielnik nie jest równy zero.
Asercje to po prostu wyrażenia boolowskie, które sprawdzają, czy warunki zwracają prawdę, czy nie. Jeśli to prawda, program nic nie robi i przechodzi do następnego wiersza kodu. Jeśli jednak jest fałszywa, program zatrzymuje się i zgłasza błąd.
Jest to również narzędzie do debugowania, ponieważ zatrzymuje program, gdy tylko wystąpi błąd i pokazuje, w którym miejscu wystąpił błąd.
Możemy to wyjaśnić, patrząc na poniższy schemat blokowy:
Instrukcja Pythona assert
Python ma wbudowaną assert
instrukcję do używania warunku asercji w programie. assert
instrukcja zawiera warunek lub wyrażenie, które powinno być zawsze prawdziwe. Jeśli warunek jest fałszywy, assert zatrzymuje program i zwraca AssertionError
.
Składnia użycia Assert w Pyhton:
zapewniać
twierdzić,
W Pythonie możemy użyć assert
instrukcji na dwa sposoby, jak wspomniano powyżej.
assert
instrukcja ma warunek i jeśli warunek nie zostanie spełniony, program zatrzyma się i daAssertionError
.assert
instrukcja może również zawierać warunek i opcjonalny komunikat o błędzie. Jeśli warunek nie jest spełniony, assert zatrzymuje program i podajeAssertionError
wraz z komunikatem o błędzie.
Weźmy przykład, w którym mamy funkcję, która obliczy średnią wartości przekazanych przez użytkownika, a wartość nie powinna być pustą listą. Użyjemy assert
instrukcji do sprawdzenia parametru i jeśli długość przekazanej listy wynosi zero, program zatrzymuje się.
Przykład 1: użycie assert bez komunikatu o błędzie
def avg(marks): assert len(marks) != 0 return sum(marks)/len(marks) mark1 = () print("Average of mark1:",avg(mark1))
Kiedy uruchomimy powyższy program, wynik będzie:
AssertionError
Otrzymaliśmy błąd, gdy przekazaliśmy pustą listę mark1 do assert
instrukcji, warunek stał się fałszywy i assert zatrzymuje program i daje AssertionError
.
Teraz podajmy kolejną listę, która spełni assert
warunek i zobaczmy, co będzie wynikiem.
Przykład 2: Używanie assert z komunikatem o błędzie
def avg(marks): assert len(marks) != 0,"List is empty." return sum(marks)/len(marks) mark2 = (55,88,78,90,79) print("Average of mark2:",avg(mark2)) mark1 = () print("Average of mark1:",avg(mark1))
Kiedy uruchomimy powyższy program, wynik będzie:
Średnia z mark2: 78.0 AssertionError: Lista jest pusta.
Przekazaliśmy do funkcji niepustą listę mark2, a także pustą listę mark1 avg()
i otrzymaliśmy wynik dla listy mark2, ale po tym wystąpił błąd AssertionError: List is empty
. assert
Warunek został spełniony przez liście Mark2 i program do dalszego biegu. Jednak mark1 nie spełnia warunku i zwraca AssertionError
.
Kluczowe punkty do zapamiętania
- Asercje to warunek lub wyrażenie boolowskie, które w kodzie zawsze powinno być prawdziwe.
assert
instrukcja przyjmuje wyrażenie i opcjonalną wiadomość.assert
instrukcja służy do sprawdzania typów, wartości argumentów i danych wyjściowych funkcji.assert
Instrukcja jest używana jako narzędzie do debugowania, ponieważ zatrzymuje program w momencie wystąpienia błędu.