logo

Python assert raktinis žodis

Python teiginiai bet kurioje programavimo kalboje yra derinimo įrankiai, padedantys sklandžiai tekėti kodą. Teiginiai dažniausiai yra prielaidos, kad programuotojas žino arba visada nori būti teisingos, todėl įdeda juos į kodą, kad jų gedimas neleistų kodui vykdyti toliau.

Patvirtinti raktinį žodį Python

Paprasčiau tariant, galime pasakyti, kad tvirtinimas yra loginė išraiška, kuri patikrina, ar teiginys yra teisingas, ar klaidingas. Jei teiginys teisingas, jis nieko nedaro ir tęsia vykdymą, bet jei teiginys yra klaidingas, jis sustabdo programos vykdymą ir išmeta klaidą.

Python tvirtinimo pareiškimo struktūrinė schema

tvirtinti Python

Python tvirtinimo pareiškimo struktūrinė schema



Python tvirtinimo raktinio žodžio sintaksė

Python, tvirtinti raktinis žodis padeda atlikti šią užduotį. Šis teiginys kaip įvestį paima loginę sąlygą, kuri, kai grąžinama tiesa, nieko nedaro ir tęsia įprastą vykdymo eigą, tačiau jei apskaičiuojama kaip klaidinga, kartu su pasirenkamu pranešimu iškeliama AssertionError.

Sintaksė: patvirtinti sąlygą, klaidos_pranešimas (neprivaloma)

Parametrai:

  • būklė: Būlio sąlyga, grąžinanti teisinga arba klaidinga.
  • error_message : Pasirenkamas argumentas, kuris turi būti atspausdintas konsolėje, jei AssertionError

Grąžinimai: Grąžina AssertionError, jei sąlyga įvertinama kaip klaidinga, kartu su klaidos pranešimu, kuris pateikiamas.

Python assert raktinis žodis be klaidos pranešimo

Šis kodas bando parodyti assert naudojimą Python, patikrindamas, ar b reikšmė yra 0 prieš atliekant padalijimo operaciją. a inicijuojama į reikšmę 4, o b inicijuojama į reikšmę 0. Programa išspausdina pranešimą A / b reikšmė yra: .Teiginys patikrina, ar b nėra lygus 0. Kadangi b yra 0, tvirtinimas pareiškimas nepavyksta ir iškelia AssertionError.
Kadangi nepavykęs tvirtinimo sakinys sukelia išimtį, programa nutrūksta ir toliau nevykdo spausdinimo teiginio kitoje eilutėje.

Python3


romėniškas skaitmuo nuo 1 iki 100



# 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)>

>

>

Išvestis:

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 tvirtinimo b != 0 11 print(a / b) AssertionError:>> 

Python assert raktinis žodis su klaidos pranešimu

Šis kodas bando parodyti assert naudojimą Python, patikrindamas, ar b reikšmė yra 0 prieš atliekant padalijimo operaciją. a inicijuojama į reikšmę 4, o b inicijuojama į reikšmę 0. Programa išspausdina pranešimą A / b reikšmė yra: .Teiginys patikrina, ar b nėra lygus 0. Kadangi b yra 0, tvirtinimas pareiškimas nepavyksta ir su pranešimu iškelia AssertionError Nulinio padalijimo klaida .
Nuo an išimtis iškeliamas nepavykusio tvirtinimo teiginio, programa nutrūksta ir toliau nevykdo spausdinimo teiginio kitoje eilutėje.

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)>

>

Išvestis:

AssertionError: Zero Division Error>

Patvirtinti funkcijos viduje

Asert teiginys šiame pavyzdyje naudojamas funkcijos viduje, siekiant patikrinti, ar stačiakampio ilgis ir plotis yra teigiami prieš apskaičiuojant jo plotą. Teiginys iškelia AssertionError su pranešimu Ilgis ir plotis turi būti teigiami, jei jie klaidingi. Jei teiginys teisingas, funkcija grąžina stačiakampio plotą; jei jis klaidingas, jis išeina su klaida. Norint parodyti, kaip panaudoti tvirtinimą įvairiose situacijose, funkcija iškviečiama du kartus, vieną kartą su teigiamais įėjimais ir vieną kartą su neigiamomis įvestimis.

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>>>and> width>>>,>'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)>

>

>

Išvestis:

AssertionError: Length and widthmust be positive>

Teiginys su logine sąlyga

Šiame pavyzdyje tvirtinimo sakinys patikrina, ar loginė sąlyga 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)>

java skaityti failą eilutė po eilutės
>

>

Išvestis:

x = 10 y = 20>

Patvirtinti kintamojo tipą Python

Šiame pavyzdyje tvirtinimo teiginiai patikrina, ar kintamųjų a ir b tipai yra atitinkamai str ir int. Jei kuris nors iš tvirtinimų nepavyksta, tai sukelia AssertionError. Jei abu teiginiai atitinka, programa tęsia ir išspausdina a ir b reikšmes.

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)>

>

>

Išvestis:

a = hello b = 42>

Žodyno vertybių tvirtinimas

Šiame pavyzdyje tvirtinimo teiginiai patikrina, ar reikšmės, susietos su raktais obuolys, bananas ir vyšnia žodyne my_dict, yra atitinkamai 1, 2 ir 3. Jei kuris nors iš tvirtinimų nepavyksta, tai sukelia AssertionError. Jei visi teiginiai pasiduoda, programa tęsia ir išspausdina žodyno turinį.

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)>

>

>

Išvestis:

My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3}>

Praktinis pritaikymas

Tai yra daug naudingesnė atliekant testavimo ir kokybės užtikrinimo vaidmenis bet kurioje kūrimo srityje. Priklausomai nuo taikymo, naudojami įvairių tipų tvirtinimai. Žemiau pateikiamas paprastesnis programos, leidžiančios išsiųsti tik partiją su visu karštu maistu, demonstravimas, kitu atveju atmetama visa partija.

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'> )>

>

>

Išvestis:

40 is O.K 26 is O.K 39 is O.K 30 is O.K>

Vykdymo laiko išimtis:

AssertionError: Batch is Rejected>

Kodėl verta naudoti Python Assert pareiškimą?

Python sistemoje tvirtinimo teiginys yra galingas derinimo įrankis, galintis padėti nustatyti klaidas ir užtikrinti, kad kodas veiktų taip, kaip numatyta. Štai keli tvirtinimo naudojimo pagrindai:

  1. Derinimas: Kodo prielaidas galima patikrinti naudojant tvirtinimo teiginį. Galite greitai rasti klaidų ir derinti programą, įdėdami tvirtinimo teiginius visame kode.
  2. Dokumentacija: Tvirtinimo teiginių naudojimas jūsų kode gali veikti kaip dokumentacija. Dėl tvirtinimo teiginių kitiems lengviau suprasti jūsų kodą ir su juo dirbti, nes jie aiškiai apibūdina jūsų kodo daromas prielaidas.
  3. Testavimas: Siekiant užtikrinti, kad būtų laikomasi tam tikrų reikalavimų, atliekant vienetų testavimą dažnai naudojami tvirtinimo teiginiai. Į savo testus įtraukdami tvirtinimo teiginius galite įsitikinti, kad kodas veikia tinkamai ir kad bet kokie atlikti pakeitimai nepakenks esamoms funkcijoms.
  4. Saugumas: Galite naudoti patvirtinimą norėdami patikrinti, ar programos įvestis atitinka reikalavimus, ir patvirtinti juos. Taip galima išvengti saugos trūkumų, pvz., buferio perpildymo ir SQL injekcijos atakų.