Declarație condițională if în Python. Sintaxă, blocuri else/elif, exemple

În procesul de învățare a programării, este adesea necesar să se creeze programe care nu sunt atât de ușor de aplicat în viața reală. La urma urmei, din când în când trebuie să urmați instrucțiunile numai în anumite condiții. Pentru a putea implementa acest lucru în program, toate limbile au instrucțiuni de control. Cu ajutorul lor, puteți controla fluxul de execuție a codului, creând bucle sau efectuând anumite acțiuni numai atunci când o anumită condiție este adevărată.

Astăzi vom vorbi despre declarația if, care verifică situația actuală pentru o anumită condiție și, pe baza acestor informații, ia decizii cu privire la acțiuni ulterioare.

Tipuri de declarații de control

În general, if nu este singura instrucțiune care controlează fluxul unui program. La fel ca el însuși poate fi o componentă a unui lanț mai mare de operatori.

Există, de asemenea, bucle și instrucțiuni care controlează procesul de execuție a acestuia. Astăzi vom vorbi doar despre operatorul condiționat și lanțurile la care poate participa.

În programare, există ramificare. Tocmai aceasta înseamnă o secvență de comenzi care este executată numai dacă o anumită condiție este adevărată. Criteriile în sine pot fi diferite:

  1. Egalitatea unei variabile cu o anumită valoare.
  2. Efectuarea unei acțiuni specifice.
  3. Starea aplicației (restrânsă sau nu).

Spectrul poate fi mult mai mare. Instrucțiunile condiționate vin în mai multe tipuri:

  1. Cu o ramură. Adică, se efectuează o singură verificare, în urma căreia se efectuează anumite acțiuni.
  2. Cu două sau mai multe ramuri. Dacă criteriul 1 este adevărat, atunci verificați criteriul 2. Dacă este adevărat, atunci verificați 3. Și astfel, efectuați câte verificări sunt necesare.
  3. Cu mai multe conditii. Totul este simplu aici. Interpretul verifică mai multe condiții sau una dintre ele.

afirmatie if

Structura declarației if este similară în toate limbile. Cu toate acestea, în Python, sintaxa sa este oarecum diferită de toate celelalte:

dacă starea:

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

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

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

În primul rând, se declară operatorul însuși, după care se scrie condiția în care începe să funcționeze. Condiția poate fi adevărată sau falsă.

Acesta este urmat de un bloc cu comenzi. Dacă urmează imediat un criteriu care trebuie îndeplinit, atunci secvența corespunzătoare de comenzi se numește bloc if. Puteți utiliza orice număr de comenzi în el.

Atenție! Indentația din toate comenzile de bloc if trebuie să aibă aceeași dimensiune. Limitele blocurilor sunt determinate de indentări. 

Conform documentației lingvistice, indentarea este de 4 spații. 

Cum funcționează acest operator? Când interpretul vede cuvântul if, verifică imediat expresia cu criteriile specificate de utilizator. Dacă acesta este cazul, atunci începe să caute instrucțiuni și să le urmeze. În caz contrar, toate comenzile din acest bloc sunt omise.

Dacă o declarație după condiție nu este indentată, nu este tratată ca un bloc if. În situația noastră, această linie este . Prin urmare, indiferent de rezultatul verificării, această linie va fi executată.

Iată un fragment de cod pentru un exemplu despre cum funcționează acest operator.

număr = int(input(„Introduceți un număr: “))

dacă numărul > 10:

    print(„Numărul este mai mare de 10”)

Acest program solicită utilizatorului un număr și verifică dacă acesta este mai mare de 10. Dacă da, returnează informațiile corespunzătoare. De exemplu, dacă utilizatorul introduce numărul 5, atunci programul se va încheia pur și simplu și asta este tot.

Dar dacă specificați numărul 100, atunci interpretul va înțelege că este mai mult de zece și îl va raporta.

Atenție! În cazul nostru, dacă condiția este falsă, programul se oprește, deoarece nu sunt date comenzi după instrucțiune.

Există o singură comandă în codul de mai sus. Dar mai sunt multe dintre ele. Singura cerință este indentarea.

Acum să analizăm această secvență de comenzi.

număr = int(input(„Scrieți un număr: “))

dacă numărul > 10:

    print(„prima linie”)

    print(„a doua linie”)

    print(„linia a treia”)

print(„Rândul care este executat, indiferent de numărul introdus”)

print(„Încheierea aplicației”)

Încercați să ghiciți care va fi rezultatul dacă introduceți valorile 2, 5, 10, 15, 50.

După cum puteți vedea, dacă numărul introdus de utilizator este mai mare de zece, atunci sunt afișate trei linii + una cu textul „Run de fiecare dată…” și una „End”, iar dacă mai puțin de zece, atunci doar una, cu un text diferit. Doar liniile 3,4,5 vor fi executate dacă sunt adevărate. Cu toate acestea, ultimele două rânduri vor fi scrise indiferent de numărul specificat de utilizator.

Dacă utilizați instrucțiunile direct în consolă, rezultatul va fi diferit. Interpretul pornește imediat modul cu mai multe linii dacă, după specificarea criteriului de verificare, apăsați Enter.

Să presupunem că am scris următoarea secvență de comenzi.

>>>

>>> n = 100

>>> dacă n > 10:

...

După aceea, vom vedea că >>> a fost înlocuit cu puncte suspensive. Aceasta înseamnă că modul de intrare multilinie este activat. Cu cuvinte simple, dacă apăsați Enter, veți fi transferat la intrarea celei de-a doua etape a instrucțiunii. 

Și pentru a ieși din acest bloc, trebuie să adăugați încă o construcție la bloc if.

>>>

>>> n = 100

>>> dacă n > 10:

… print(«nv 10»)

...

Dacă condiția nu este adevărată, programul se termină. Aceasta este o problemă, deoarece utilizatorul poate percepe un astfel de program ca fiind închis din cauza unei defecțiuni. Prin urmare, este necesar să oferiți feedback utilizatorului. Pentru aceasta se folosește un link dacă-altfel.

operator de expresie dacă-altfel

Acest operator vă permite să implementați o legătură: dacă expresia se potrivește cu o anumită regulă, efectuați aceste acțiuni, iar dacă nu, atunci altele. Adică, vă permite să împărțiți fluxul programului în două drumuri. Sintaxa este intuitivă:

dacă starea:

    # dacă bloc

    declaratie 1

    declaratie 2

    și așa mai departe

altceva:

    # else block

    declaratie 3

    declaratie 4

    si asa mai departe:

Să explicăm cum funcționează acest operator. În primul rând, instrucțiunea standard este executată în fir tisa, verificând dacă se potrivește condiție "adevărat sau fals". Acțiunile ulterioare depind de rezultatele verificării. Dacă este adevărată, instrucțiunea care se află în secvența de instrucțiuni care urmează condiției este executată direct. tisa, daca este fals, atunci altfel

În acest fel, puteți gestiona erorile. De exemplu, utilizatorul trebuie să introducă o rază. Evident, poate fi doar un număr cu semnul plus, sau este o valoare nulă. Dacă este mai mic de 0, atunci trebuie să emiteți un mesaj care vă cere să introduceți un număr pozitiv. 

Iată codul care implementează această sarcină. Dar există o greșeală aici. Încercați să ghiciți care. 

raza = int(input(„Introduceți raza: “))

dacă raza >= 0:

    print(„Circumferinta = “, 2 * 3.14 * raza)

    print(„Zona = “, 3.14 * rază ** 2)

    altceva:

        print(„Vă rugăm să introduceți un număr pozitiv”)

Eroare de nepotrivire a indentării. Dacă și Altceva trebuie să fie situate fără ele sau cu același număr de ele (în funcție de faptul că sunt imbricate sau nu).

Să dăm un alt caz de utilizare (unde totul va fi corect cu alinierea operatorului) – un element de aplicație care verifică o parolă.

parola = input(„Introduceți parola: “)

dacă parola == «sshh»:

    print(„Bine ați venit”)

altceva:

    print(„Acces refuzat”)

Această instrucțiune omite persoana mai departe dacă parola este sshh. Dacă orice altă combinație de litere și cifre, atunci se afișează mesajul „Acces refuzat”.

declarație-expresie dacă-elif-altfel

Numai dacă mai multe condiții nu sunt adevărate, se execută instrucțiunea care se află în bloc. altfel. Această expresie funcționează astfel.

dacă condiția_1:

    # dacă bloc

    declaraţie

    declaraţie

    mai multă declarație

elif condition_2:

    # primul bloc elif

    declaraţie

    declaraţie

    mai multă declarație

elif condition_3:

    # al doilea bloc elif

    declaraţie

    declaraţie

    mai multă declarație

...

altfel

    declaraţie

    declaraţie

    mai multă declarație

Puteți specifica orice număr de condiții suplimentare.

Declarații imbricate

O altă modalitate de a implementa mai multe condiții este să inserați verificări suplimentare de condiții în blocul if.

Operator if în interiorul unui alt bloc de stare

gre_score = int(input(„Introduceți limita de credit actuală”))

per_grad = int(input(„Introduceți ratingul dvs. de credit: “))

dacă per_grad > 70:

    # exterior dacă bloc

        dacă gre_score > 150:

            # bloc if interior

    print(„Felicitări, ați primit un împrumut”)

altceva:

    print(„Ne pare rău, nu sunteți eligibil pentru un împrumut”)

Acest program efectuează o verificare a ratingului de credit. Dacă este mai mică de 70, programul raportează că utilizatorul nu este eligibil pentru credit. Dacă este mai mare, se efectuează o a doua verificare pentru a vedea dacă limita de credit actuală este mai mare de 150. Dacă da, atunci este afișat un mesaj că împrumutul a fost emis.

Dacă ambele valori sunt false, atunci este afișat un mesaj că utilizatorul nu are posibilitatea de a obține un împrumut. 

Acum să reluăm puțin programul.

gre_score = int(input(„Introduceți limita curentă: “))

per_grad = int(input(„Introduceți scorul de credit: “))

dacă per_grad > 70:

    dacă gre_score > 150:

        print(„Felicitări, ați primit un împrumut”)

    altceva:

        print(„Limita dvs. de credit este scăzută”)

altceva:

    print(„Ne pare rău, nu sunteți eligibil pentru credit”)

Codul în sine este foarte asemănător, dar imbricat if oferă, de asemenea, un algoritm în cazul în care condiția din acesta se dovedește a fi falsă. Adică limita de pe card este insuficientă, dar istoricul de credit este bun, se afișează mesajul „Aveți un rating de credit scăzut”.

declarația if-else în interiorul unei condiții altfel

Să facem un alt program care determină nota unui student pe baza scorurilor la teste.

scor = int(input(„Introduceți scorul dvs.: “))

dacă scor >= 90:

    print(„Genial! Nota ta este A”)

altceva:

    dacă scor >= 80:

print(„Genial! Nota ta este B”)

    altceva:

dacă scor >= 70:

    print(„Bine! Nota ta este C”)

altceva:

    dacă scor >= 60:

print(„Nota dvs. este D. Merită să repetați materialul.”)

    altceva:

print(„Ai picat examenul”)

Aplicația verifică mai întâi dacă scorul este mai mare sau egal cu 90. Dacă da, atunci returnează o notă A. Dacă această condiție este falsă, se efectuează verificări ulterioare. Vedem că algoritmul este aproape același la prima vedere. Deci, în loc să verifici înăuntru altfel mai bine sa folosesti o combinatie dacă-elif-altfel.

Deci operatorul if îndeplinește o funcție foarte importantă – se asigură că anumite bucăți de cod sunt executate numai dacă este nevoie de el. Este imposibil să ne imaginăm programarea fără ea, deoarece chiar și cei mai simpli algoritmi necesită bifurcări precum „dacă mergi la stânga, o vei găsi, iar dacă mergi la dreapta, atunci trebuie să faci asta și asta.”

Lasă un comentariu