Asercje Pythona w dowolnym języku programowania znajdują się narzędzia do debugowania, które pomagają w płynnym przepływie kodu. Asercje to głównie założenia, o których programista wie lub zawsze chce, aby były prawdziwe, dlatego umieszcza je w kodzie w taki sposób, że ich niepowodzenie uniemożliwia dalsze wykonanie kodu.
Potwierdź słowo kluczowe w Pythonie
Mówiąc prościej, możemy powiedzieć, że asercja jest wyrażeniem boolowskim, które sprawdza, czy stwierdzenie jest prawdziwe, czy fałszywe. Jeśli instrukcja jest prawdziwa, to nic nie robi i kontynuuje wykonywanie, ale jeśli instrukcja ma wartość Fałsz, wówczas zatrzymuje wykonywanie programu i zgłasza błąd.
Schemat blokowy instrukcji potwierdzenia w języku Python

Schemat blokowy instrukcji potwierdzenia w języku Python
Składnia słowa kluczowego Assert w Pythonie
W Pythonie zapewniać słowo kluczowe pomaga w realizacji tego zadania. Ta instrukcja przyjmuje jako dane wejściowe warunek logiczny, który po zwróceniu wartości true nie robi nic i kontynuuje normalny przebieg wykonywania, ale jeśli zostanie obliczony jako fałszywy, zgłasza błąd AssertionError wraz z dostarczonym opcjonalnym komunikatem.
Składnia: warunek potwierdzenia, komunikat_błędu (opcjonalnie)
Parametry:
- stan : Warunek logiczny zwracający wartość true lub false.
- Komunikat o błędzie : Opcjonalny argument do wydrukowania w konsoli w przypadku błędu AssertionError
Zwroty: Zwraca AssertionError, jeśli warunek ma wartość false, wraz z komunikatem o błędzie, jeśli zostanie podany.
Python potwierdza słowo kluczowe bez komunikatu o błędzie
Ten kod próbuje zademonstrować użycie potwierdzenia w Pythonie, sprawdzając, czy wartość b wynosi 0 przed wykonaniem operacji dzielenia. a jest inicjowane wartością 4, a b jest inicjowane wartością 0. Program wypisuje komunikat Wartość a / b to: .Instrukcja Assert sprawdza, czy b nie jest równe 0. Ponieważ b wynosi 0, asercja instrukcja kończy się niepowodzeniem i wywołuje błąd AssertionError.
Ponieważ nieudana instrukcja potwierdzenia zgłasza wyjątek, program kończy działanie i nie kontynuuje wykonywania instrukcji print w następnym wierszu.
Python3
listy Javy
# initializing number> a>=> 4> b>=> 0> # using assert to check for 0> print>(>'The value of a / b is : '>)> assert> b !>=> 0> print>(a>/> b)> |
>
>
Wyjście:
The value of a / b is : --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Input In [19], in () 8 # using assert to check for 0 9 print('The value of a / b is : ') --->10 twierdzenie b != 0 11 print(a / b) AssertionError:> Słowo kluczowe Pythona z komunikatem o błędzie
Ten kod próbuje zademonstrować użycie potwierdzenia w Pythonie, sprawdzając, czy wartość b wynosi 0 przed wykonaniem operacji dzielenia. a jest inicjowane wartością 4, a b jest inicjowane wartością 0. Program wypisuje komunikat Wartość a / b to: .Instrukcja Assert sprawdza, czy b nie jest równe 0. Ponieważ b wynosi 0, asercja instrukcja kończy się niepowodzeniem i wraz z komunikatem wywołuje błąd AssertionError Błąd podziału zerowego .
Ponieważ wyjątek zostanie wywołany przez nieudaną instrukcję potwierdzenia, program kończy działanie i nie kontynuuje wykonywania instrukcji print w następnym wierszu.
Python3
# Python 3 code to demonstrate> # working of assert> # initializing number> a>=> 4> b>=> 0> # using assert to check for 0> print>(>'The value of a / b is : '>)> assert> b !>=> 0>,>'Zero Division Error'> print>(a>/> b)> |
>
>
Wyjście:
AssertionError: Zero Division Error>
Twierdzenie wewnątrz funkcji
W tym przykładzie instrukcja Assert została użyta wewnątrz funkcji w celu sprawdzenia, czy długość i szerokość prostokąta są dodatnie przed obliczeniem jego pola. Asercja wywołuje błąd AssertionError z komunikatem Długość i szerokość muszą być dodatnie, jeśli jest fałszywe. Jeśli stwierdzenie jest prawdziwe, funkcja zwraca pole prostokąta; jeśli jest fałszywe, kończy się z błędem. Aby pokazać, jak wykorzystać asercję w różnych sytuacjach, funkcja jest wywoływana dwukrotnie, raz z danymi dodatnimi i raz z danymi wejściowymi ujemnymi.
Python3
# Function to calculate the area of a rectangle> def> calculate_rectangle_area(length, width):> ># Assertion to check that the length and width are positive> >assert> length>>0> and> width>>0>,>'Length and width'>+> > >'must be positive'> ># Calculation of the area> >area>=> length>*> width> ># Return statement> >return> area> # Calling the function with positive inputs> area1>=> calculate_rectangle_area(>5>,>6>)> print>(>'Area of rectangle with length 5 and width 6 is'>, area1)> # Calling the function with negative inputs> area2>=> calculate_rectangle_area(>->5>,>6>)> print>(>'Area of rectangle with length -5 and width 6 is'>, area2)> |
>
>
Wyjście:
AssertionError: Length and widthmust be positive>
Potwierdź za pomocą warunku logicznego
W tym przykładzie instrukcja Assert sprawdza, czy warunek logiczny x
Python3
# Initializing variables> x>=> 10> y>=> 20> # Asserting a boolean condition> assert> x # Printing the values of x and y print('x =', x) print('y =', y)> |
>
>
Wyjście:
x = 10 y = 20>
Podaj typ zmiennej w Pythonie
W tym przykładzie instrukcje Assert sprawdzają, czy typy zmiennych a i b to odpowiednio str i int. Jeśli którakolwiek z asercji zakończy się niepowodzeniem, zostanie zgłoszony błąd AssertionError. Jeśli oba twierdzenia powiodą się, program kontynuuje i wypisuje wartości a i b.
Python3
rozmiar czcionki, lateks
# Initializing variables> a>=> 'hello'> b>=> 42> # Asserting the type of a variable> assert> type>(a)>=>=> str> assert> type>(b)>=>=> int> # Printing the values of a and b> print>(>'a ='>, a)> print>(>'b ='>, b)> |
>
>
Wyjście:
a = hello b = 42>
Potwierdzanie wartości słownikowych
W tym przykładzie instrukcje Assert sprawdzają, czy wartości powiązane z kluczami apple, banana i cherry w słowniku my_dict wynoszą odpowiednio 1, 2 i 3. Jeśli którakolwiek z asercji zakończy się niepowodzeniem, zostanie zgłoszony błąd AssertionError. Jeśli wszystkie twierdzenia powiodą się, program kontynuuje i drukuje zawartość słownika.
Python3
# Initializing a dictionary> my_dict>=> {>'apple'>:>1>,>'banana'>:>2>,>'cherry'>:>3>}> # Asserting the contents of the dictionary> assert> my_dict[>'apple'>]>=>=> 1> assert> my_dict[>'banana'>]>=>=> 2> assert> my_dict[>'cherry'>]>=>=> 3> # Printing the dictionary> print>(>'My dictionary contains the following key-value pairs:'>, my_dict)> |
>
>
Wyjście:
My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3}> Praktyczne zastosowanie
Ma to znacznie większą użyteczność w rolach testujących i zapewniających jakość w dowolnej domenie programistycznej. W zależności od zastosowania stosowane są różne typy asercji. Poniżej znajduje się prostsza demonstracja programu, który pozwala na wysłanie tylko partii zawierającej całą gorącą żywność, w przeciwnym razie odrzuca całą partię.
Python3
# Python 3 code to demonstrate> # working of assert> # Application> # initializing list of foods temperatures> batch>=> [>40>,>26>,>39>,>30>,>25>,>21>]> # initializing cut temperature> cut>=> 26> # using assert to check for temperature greater than cut> for> i>in> batch:> >assert> i>>=> 26>,>'Batch is Rejected'> >print> (>str>(i)>+> ' is O.K'> )> |
>
>
Wyjście:
40 is O.K 26 is O.K 39 is O.K 30 is O.K>
Wyjątek czasu wykonania:
AssertionError: Batch is Rejected>
Dlaczego warto używać instrukcji potwierdzenia w języku Python?
W języku Python instrukcja Assert jest potężnym narzędziem do debugowania, które może pomóc w identyfikacji błędów i upewnieniu się, że kod działa zgodnie z zamierzeniami. Oto kilka uzasadnień użycia potwierdzenia:
- Debugowanie: Założenia przyjęte w kodzie można zweryfikować za pomocą instrukcji Assert. Możesz szybko znaleźć błędy i debugować swój program, umieszczając instrukcje potwierdzenia w całym kodzie.
- Dokumentacja: Użycie instrukcji potwierdzenia w kodzie może służyć jako dokumentacja. Instrukcje Assert ułatwiają innym zrozumienie Twojego kodu i pracę z nim, ponieważ wyraźnie opisują założenia, jakie przyjmuje Twój kod.
- Testowanie: Aby mieć pewność, że określone wymagania zostaną spełnione, w testach jednostkowych często stosuje się instrukcje asert. Możesz upewnić się, że Twój kod działa poprawnie i że wszelkie wprowadzone zmiany nie zniszczą bieżącej funkcjonalności, włączając instrukcje potwierdzenia do swoich testów.
- Bezpieczeństwo: Możesz użyć asert, aby sprawdzić, czy dane wejściowe programu są zgodne z wymaganiami i je zweryfikować. W ten sposób można uniknąć luk w zabezpieczeniach, takich jak przepełnienia bufora i ataki polegające na wstrzykiwaniu SQL.