Python påståenden i alla programmeringsspråk finns felsökningsverktygen som hjälper till med ett smidigt flöde av kod. Påståenden är huvudsakligen antaganden som en programmerare vet eller alltid vill vara sanna och därför lägger dem i kod så att misslyckande med dessa inte tillåter koden att exekvera ytterligare.
Säkra nyckelord i Python
I enklare termer kan vi säga att assertion är det booleska uttrycket som kontrollerar om påståendet är sant eller falskt. Om påståendet är sant gör det ingenting och fortsätter körningen, men om påståendet är falskt stoppar det körningen av programmet och ger ett fel.
Flödesschema för Python Assert Statement

Flödesschema för Python Assert Statement
Python hävda sökordssyntax
I Python, den hävda nyckelord hjälper till att uppnå denna uppgift. Den här satsen tar som indata ett booleskt villkor, som när det returnerar sant inte gör någonting och fortsätter det normala flödet av exekvering, men om det beräknas vara falskt, väcker det ett AssertionError tillsammans med det valfria meddelandet.
Syntax : hävda villkor, felmeddelande (valfritt)
Parametrar:
- skick : Det booleska villkoret returnerar sant eller falskt.
- felmeddelande : Det valfria argumentet som ska skrivas ut i konsolen vid AssertionError
Returnerar: Returnerar AssertionError, om villkoret utvärderas till falskt tillsammans med felmeddelandet som när det tillhandahålls.
Python hävda nyckelord utan felmeddelande
Den här koden försöker demonstrera användningen av assert i Python genom att kontrollera om värdet på b är 0 innan du utför en divisionsoperation. a initieras till värdet 4, och b initieras till värdet 0. Programmet skriver ut meddelandet. Värdet på a/b är: .Assert-satsen kontrollerar om b inte är lika med 0. Eftersom b är 0, är assert uttalande misslyckas och väcker ett AssertionError.
Eftersom ett undantag uppstår av den misslyckade assertsatsen, avslutas programmet och fortsätter inte att exekvera printsatsen på nästa rad.
Python3
karta i java
# 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)> |
>
>
Produktion:
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 hävda b != 0 11 print(a / b) AssertionError:> Python hävdar nyckelordet med ett felmeddelande
Den här koden försöker demonstrera användningen av assert i Python genom att kontrollera om värdet på b är 0 innan du utför en divisionsoperation. a initieras till värdet 4, och b initieras till värdet 0. Programmet skriver ut meddelandet. Värdet av a/b är: .Assert-satsen kontrollerar om b inte är lika med 0. Eftersom b är 0, är assert uttalandet misslyckas och väcker ett AssertionError med meddelandet Nolldelningsfel .
Sedan en undantag höjs av den misslyckade assert-satsen, avslutas programmet och fortsätter inte att exekvera print-satsen på nästa rad.
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)> |
>
>
Produktion:
AssertionError: Zero Division Error>
Påstå inuti en funktion
Assertsatsen används i en funktion i det här exemplet för att verifiera att en rektangels längd och bredd är positiva innan dess area beräknas. Påståendet väcker ett AssertionError med meddelandet Length and width måste vara positivt om det är falskt. Om påståendet är sant returnerar funktionen rektangelns area; om det är falskt avslutas det med ett fel. För att visa hur man använder assert i olika situationer anropas funktionen två gånger, en gång med positiva ingångar och en gång med negativa ingångar.
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)> |
>
>
Produktion:
AssertionError: Length and widthmust be positive>
Assert med booleskt skick
I det här exemplet kontrollerar assert-satsen om det booleska villkoret 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)> |
>
>
Produktion:
x = 10 y = 20>
Bekräfta typ av variabel i Python
I det här exemplet kontrollerar assert-satserna om typerna av variablerna a och b är str respektive int. Om något av påståendena misslyckas, väcker det ett AssertionError. Om båda påståendena går igenom fortsätter programmet och skriver ut värdena för a och b.
Python3
java-objekt till json
# 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)> |
>
>
Produktion:
a = hello b = 42>
Att hävda ordboksvärden
I det här exemplet kontrollerar assert-satserna om värdena som är associerade med nycklarna apple, banana och cherry i ordboken my_dict är 1, 2 respektive 3. Om något av påståendena misslyckas, väcker det ett AssertionError. Om alla påståenden går igenom fortsätter programmet och skriver ut innehållet i ordboken.
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)> |
>
>
Produktion:
My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3}> Praktisk applikation
Detta har en mycket större användbarhet i testnings- och kvalitetssäkringsrollerna i alla utvecklingsdomäner. Olika typer av påståenden används beroende på applikation. Nedan är en enklare demonstration av ett program som endast tillåter att endast satsen med all varm mat skickas, annars avvisar hela partiet.
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'> )> |
>
>
Produktion:
40 is O.K 26 is O.K 39 is O.K 30 is O.K>
Runtime Undantag:
AssertionError: Batch is Rejected>
Varför använda Python Assert Statement?
I Python är assert-satsen ett kraftfullt felsökningsverktyg som kan hjälpa till att identifiera misstag och säkerställa att din kod fungerar som avsett. Här är flera motiveringar för att använda assert:
- Felsökning: Antaganden gjorda av din kod kan verifieras med påstående uttalandet. Du kan snabbt hitta misstag och felsöka ditt program genom att placera assert-satser i hela din kod.
- Dokumentation: Användningen av assert-satser i din kod kan fungera som dokumentation. Påstående uttalanden gör det enklare för andra att förstå och arbeta med din kod eftersom de uttryckligen beskriver de antaganden som din kod gör.
- Testning: För att säkerställa att vissa krav uppfylls, används påstående uttalanden ofta i enhetstestning. Du kan se till att din kod fungerar korrekt och att eventuella ändringar du gör inte skadar nuvarande funktionalitet genom att inkludera påstående uttalanden i dina tester.
- Säkerhet: Du kan använda assert för att kontrollera att programinmatningar överensstämmer med kraven och validera dem. Genom att göra det kan säkerhetsbrister som buffertspill och SQL-injektionsattacker undvikas.