Tingimuslik if-lause Pythonis. Süntaks, else/elif plokid, näited

Programmeerima õppimise käigus on sageli vaja luua programme, mida päriselus nii lihtne rakendada pole. Lõppude lõpuks peate aeg-ajalt juhiseid järgima ainult teatud tingimustel. Selle programmis rakendamiseks on kõigis keeltes juhtlaused. Nende abiga saate juhtida koodi täitmise voogu, luues silmuseid või sooritades teatud toiminguid ainult siis, kui teatud tingimus on tõene.

Täna räägime if-lausest, mis kontrollib hetkeolukorda teatud seisundi suhtes ja selle info põhjal teeb otsuseid edasiste toimingute kohta.

Kontrolliavalduste tüübid

Üldiselt pole if ainus avaldus, mis programmi voogu kontrollib. Nagu ka ta ise võib olla osa suuremast operaatorite ahelast.

Samuti on silmuseid ja avaldusi, mis juhivad selle täitmise protsessi. Täna räägime ainult tingimuslikust operaatorist ja ahelatest, milles ta saab osaleda.

Programmeerimises on selline asi nagu hargnemine. Just see tähendab käskude jada, mis täidetakse ainult siis, kui teatud tingimus on tõene. Kriteeriumid ise võivad olla erinevad:

  1. Muutuja võrdsus teatud väärtusega.
  2. Konkreetse toimingu sooritamine.
  3. Rakenduse olek (ahendatud või mitte).

Spekter võib olla palju suurem. Tingimuslikke avaldusi on mitut tüüpi:

  1. Ühe haruga. See tähendab, et tehakse üks kontroll, mille tulemusena tehakse teatud toimingud.
  2. Kahe või enama haruga. Kui kriteerium 1 on tõene, kontrollige kriteeriumi 2. Kui see on tõene, siis kontrollige 3. Ja nii, tehke nii palju kontrolle kui vaja.
  3. Mitme tingimusega. Siin on kõik lihtne. Tõlk kontrollib mitut tingimust või ühte neist.

kui avaldus

If-lause struktuur on kõigis keeltes sarnane. Kuid Pythonis on selle süntaks kõigist teistest mõnevõrra erinev:

kui tingimus:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

Esiteks deklareeritakse operaator ise, misjärel kirjutatakse tingimus, mille alusel see tööle hakkab. Tingimus võib olla kas tõene või väär.

Sellele järgneb käskudega plokk. Kui see järgneb kohe mingile kriteeriumile, mida tuleb täita, siis nimetatakse vastavat käskude jada if-plokiks. Selles saate kasutada mis tahes arvu käske.

Tähelepanu! All if blocki käskude taane peab olema sama suur. Plokkide piirid määratakse taandega. 

Keeledokumentatsiooni järgi on taane 4 tühikut. 

Kuidas see operaator töötab? Kui tõlk näeb if-sõna, kontrollib ta avaldist kohe kasutaja määratud kriteeriumide alusel. Kui see nii on, siis hakkab ta juhiseid otsima ja neid järgima. Vastasel juhul jäetakse kõik selle ploki käsud vahele.

Kui tingimusele järgnevat lauset ei taandata, ei käsitleta seda kui-plokina. Meie olukorras on see rida . Seetõttu täidetakse see rida sõltumata kontrolli tulemusest.

Siin on koodilõik selle operaatori toimimise näite jaoks.

number = int(input("Sisestage number: "))

kui arv > 10:

    print ("Arv on suurem kui 10")

See programm küsib kasutajalt numbrit ja kontrollib, kas see on suurem kui 10. Kui jah, tagastab see vastava teabe. Näiteks kui kasutaja sisestab numbri 5, siis programm lihtsalt lõpeb ja kõik.

Kuid kui määrate numbri 100, saab tõlk aru, et see on üle kümne, ja teatab sellest.

Tähelepanu! Meie puhul, kui tingimus on väär, siis programm seiskub, kuna käsklusi pärast käsklust ei anta.

Ülaltoodud koodis on ainult üks käsk. Kuid neid on palju rohkem. Ainus nõue on taane.

Nüüd analüüsime seda käskude jada.

number = int(input("Kirjutage number: "))

kui arv > 10:

    print ("esimene rida")

    print ("teine ​​rida")

    print ("kolmas rida")

print ("Rida, mis käivitatakse, olenemata sisestatud numbrist")

print ("Lõpeta taotlus")

Proovige ära arvata, milline on väljund, kui sisestate väärtused 2, 5, 10, 15, 50.

Nagu näete, kui kasutaja sisestatud arv on suurem kui kümme, väljastatakse kolm rida + üks tekstiga "Käivita iga kord ..." ja üks "Lõpp" ja kui alla kümne, siis ainult üks, teistsugune tekst. Tõene korral täidetakse ainult read 3,4,5. Kuid viimased kaks rida kirjutatakse olenemata kasutaja määratud numbrist.

Kui kasutate avaldusi otse konsoolis, on tulemus erinev. Tõlk lülitab kohe sisse mitmerealise režiimi, kui pärast kinnituskriteeriumi määramist vajutada sisestusklahvi.

Oletame, et oleme kirjutanud järgmise käskude jada.

>>>

>>> n = 100

>>> kui n > 10:

...

Pärast seda näeme, et >>> on asendatud ellipsiga. See tähendab, et mitmerealine sisestusrežiim on lubatud. Lihtsamalt öeldes, kui vajutate Enter, suunatakse teid juhise teise etapi sisendisse. 

Ja sellest plokist väljumiseks tuleb plokki lisada veel üks konstruktsioon if.

>>>

>>> n = 100

>>> kui n > 10:

… print («nv 10»)

...

Kui tingimus ei vasta tõele, siis programm lõpeb. See on probleem, kuna kasutaja võib tajuda, et selline programm on tõrke tõttu suletud. Seetõttu on vaja anda kasutajale tagasisidet. Selleks kasutatakse linki kui-veel.

väljendite operaator kui-veel

See operaator võimaldab teil rakendada linki: kui avaldis vastab teatud reeglile, tehke need toimingud ja kui mitte, siis muud. See tähendab, et see võimaldab jagada programmi voo kaheks teeks. Süntaks on intuitiivne:

kui tingimus:

    # kui blokeerida

    väljavõte 1

    väljavõte 2

    ja nii edasi

muu:

    # muu blokk

    väljavõte 3

    väljavõte 4

    ja nii edasi:

Selgitame, kuidas see operaator töötab. Esiteks täidetakse lõimes standardlause jugapuu, kontrollides, kas see sobib seisund "õige või vale". Edasised toimingud sõltuvad kontrolli tulemustest. Kui see on tõene, täidetakse tingimusele järgnevas käsujadas olev käsk otse. jugapuu, kui see on vale, siis teine

Nii saate vigadega toime tulla. Näiteks peab kasutaja sisestama raadiuse. Ilmselgelt saab see olla ainult plussmärgiga arv või nullväärtus. Kui see on väiksem kui 0, peate väljastama sõnumi, milles palutakse teil sisestada positiivne arv. 

Siin on kood, mis seda ülesannet rakendab. Kuid siin on üks viga. Proovige arvata, milline. 

raadius = int(input(“Sisesta raadius: “))

kui raadius >= 0:

    print("Ümbermõõt = ", 2 * 3.14 * raadius)

    print("Piirkond = ", 3.14 * raadius ** 2)

    muu:

        print ("Palun sisestage positiivne arv")

Taande mittevastavuse viga. Kui ja muu peavad asuma ilma nendeta või sama arvuga (olenevalt sellest, kas need on pesastatud või mitte).

Anname veel ühe kasutusjuhu (kus operaatori joondusega saab kõik korda) – parooli kontrolliva rakenduse elemendi.

parool = sisend ("Sisesta parool: ")

kui parool == «sshh»:

    print ("Tere tulemast")

muu:

    print ("Juurdepääs keelatud")

Kui parool on sshh, jäetakse see juhend vahele. Kui mõni muu tähtede ja numbrite kombinatsioon, kuvatakse teade "Juurdepääs keelatud".

väide-väljendus if-elif-muu

Ainult siis, kui mitu tingimust ei vasta tõele, täidetakse plokis olev lause. teine. See väljend töötab nii.

kui tingimus_1:

    # kui blokeerida

    avaldus

    avaldus

    rohkem avaldust

elif tingimus_2:

    # esimene elif plokk

    avaldus

    avaldus

    rohkem avaldust

elif tingimus_3:

    # teine ​​elif plokk

    avaldus

    avaldus

    rohkem avaldust

...

teine

    avaldus

    avaldus

    rohkem avaldust

Saate määrata mis tahes arvu lisatingimusi.

Pesastatud avaldused

Teine võimalus mitme tingimuse rakendamiseks on lisada if-plokki täiendavaid tingimuste kontrolle.

operaator if teise tingimusploki sees

gre_score = int(input("Sisestage oma praegune krediidilimiit")

per_grad = int(input("Sisestage oma krediidireiting: "))

kui per_grad > 70:

    # välimine kui plokk

        kui gre_score > 150:

            # sisemine kui plokk

    print ("Palju õnne, olete laenu saanud")

muu:

    print ("Kahjuks ei ole teil laenukõlbulik")

See programm teostab krediidireitingu kontrolli. Kui see on alla 70, teatab programm, et kasutajal ei ole õigust krediidi saamiseks. Kui see on suurem, kontrollitakse teistkordselt, kas praegune krediidilimiit on suurem kui 150. Kui jah, siis kuvatakse teade, et laen on väljastatud.

Kui mõlemad väärtused on valed, kuvatakse teade, et kasutajal puudub võimalus laenu saada. 

Nüüd töötame seda programmi veidi ümber.

gre_score = int(input("Sisestage praegune limiit: "))

per_grad = int(input("Sisesta krediidiskoor: "))

kui per_grad > 70:

    kui gre_score > 150:

        print ("Palju õnne, olete laenu saanud")

    muu:

        print ("Teie krediidilimiit on madal")

muu:

    print ("Vabandust, teil ei ole õigust krediidi saamiseks")

Kood ise on väga sarnane, kuid pesastatud if annab ka algoritmi juhuks, kui sellest tulenev tingimus osutub valeks. See tähendab, et kaardi limiit on ebapiisav, kuid krediidiajalugu on hea, kuvatakse teade “Teil on madal krediidireiting”.

if-else lause tingimuse sees teine

Teeme veel ühe programmi, mis määrab testitulemuste põhjal õpilase hinde.

skoor = int(input("Sisestage oma tulemus: "))

kui skoor >= 90:

    print ("Suurepärane! Teie hinne on A")

muu:

    kui skoor >= 80:

print ("Suurepärane! Teie hinne on B")

    muu:

kui skoor >= 70:

    print ("Tubli! Teie hinne on C")

muu:

    kui skoor >= 60:

print ("Teie hinne on D. Materjali tasub korrata.")

    muu:

print ("Sa kukkusid eksamil läbi")

Rakendus kontrollib esmalt, kas tulemus on suurem kui 90 või sellega võrdne. Kui jah, tagastab see hinde A. Kui see tingimus on vale, viiakse läbi järgmised kontrollid. Näeme, et algoritm on esmapilgul peaaegu sama. Nii et sisemuse kontrollimise asemel teine parem kasutada kombinatsiooni kui-elif-muu.

Nii et operaator if täidab väga olulist funktsiooni – hoolitseb selle eest, et teatud koodijupid saaksid käivituda vaid siis, kui selleks on vajadus. Programmeerimist on võimatu ette kujutada ilma selleta, sest isegi kõige lihtsamad algoritmid nõuavad kahvleid nagu "kui lähete vasakule, siis leiate selle ja kui lähete paremale, siis peate tegema seda ja teist."

Jäta vastus