Słowo kluczowe w Pythonie
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
# 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
# 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.