Instrukcja Pythona Assert

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ą assertinstrukcję do używania warunku asercji w programie. assertinstrukcja 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ć assertinstrukcji na dwa sposoby, jak wspomniano powyżej.

  1. assertinstrukcja ma warunek i jeśli warunek nie zostanie spełniony, program zatrzyma się i da AssertionError.
  2. assertinstrukcja może również zawierać warunek i opcjonalny komunikat o błędzie. Jeśli warunek nie jest spełniony, assert zatrzymuje program i podaje AssertionErrorwraz 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 assertinstrukcji 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 assertinstrukcji, warunek stał się fałszywy i assert zatrzymuje program i daje AssertionError.

Teraz podajmy kolejną listę, która spełni assertwarunek 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. assertWarunek 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.

Interesujące artykuły...