Cundizionale se dichjarazione in Python. Sintassi, altri / blocchi elif, esempi

In u prucessu di amparà à programà, hè spessu necessariu di creà prugrammi chì ùn sò micca cusì faciuli d'applicà in a vita reale. Dopu tuttu, da u tempu à u tempu duvete seguità istruzzioni solu in certi cundizioni. Per pudè implementà questu in u prugramma, tutte e lingue anu dichjarazioni di cuntrollu. Cù u so aiutu, pudete cuntrullà u flussu di l'esekzione di codice, creendu loops o realizà certe azzioni solu quandu una certa cundizione hè vera.

Oghje parlemu di a dichjarazione se, chì verifica a situazione attuale per una certa cundizione, è basatu annantu à questa informazione, piglia decisioni nantu à più azzioni.

Tipi di dichjarazioni di cuntrollu

In generale, s'ellu ùn hè micca a sola dichjarazione chì cuntrolla u flussu di un prugramma. Cum'è ellu stessu pò esse un cumpunente di una catena più grande di operatori.

Ci sò ancu loops è dichjarazioni chì cuntrollanu u prucessu di a so esicuzzioni. Oghje parleremu solu di l'operatore cundizionale è di e catene in quale pò participà.

In a prugrammazione, ci hè una cosa cum'è branching. Hè precisamente questu chì significa una sequenza di cumandamenti chì hè eseguita solu se una certa cundizione hè vera. I criteri stessi ponu esse sfarenti:

  1. Uguaglianza di una variabile à un certu valore.
  2. Realizà una azzione specifica.
  3. Statu di l'applicazione (collapsed or not).

U spettru pò esse assai più grande. Dichjarazioni cundiziunali sò in parechji tipi:

  1. Cù un ramu. Vale à dì, una sola verificazione hè realizata, per via di quale certe azzioni sò realizati.
  2. Cù dui o più rami. Se u criteriu 1 hè veru, verificate u criteriu 2. S'ellu hè veru, verificate u 3. È cusì, eseguite quant'è cuntrolli cum'è necessariu.
  3. Cù parechje cundizioni. Tuttu hè simplice quì. L'interprete verifica per parechje cundizioni o unu di elli.

se dichjarazione

A struttura di a dichjarazione if hè simile in tutte e lingue. Tuttavia, in Python, a so sintassi hè un pocu sfarente di tutti l'altri:

se cundizione:

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

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

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

Prima, l'operatore stessu hè dichjarata, dopu chì a cundizione sottu a quale principia à travaglià hè scritta. A cundizione pò esse vera o falsa.

Questu hè seguitatu da un bloccu cù cumandamenti. S'ellu seguita immediatamente un criteriu per esse scontru, allura a sequenza currispundente di cumandamenti hè chjamata if block. Pudete aduprà ogni numeru di cumandamenti in questu.

Attenzione! L'indentazione in tutti i cumandamenti di bloccu deve esse a stessa dimensione. I cunfini di u bloccu sò determinati da l'indentazioni. 

Sicondu a documentazione linguistica, l'indentazione hè di 4 spazii. 

Cumu funziona stu operatore? Quandu l'interprete vede a parolla if, verifica immediatamente l'espressione contru à i criteri specificati da l'utilizatori. Se questu hè u casu, allora ellu principia à circà l'istruzzioni è à seguità. Altrimenti, tutti i cumandamenti da stu bloccu sò saltati.

Se una dichjarazione dopu à a cundizione ùn hè micca indentata, ùn hè micca trattata cum'è un bloccu if. In a nostra situazione, sta linea hè . Dunque, indipendentemente da u risultatu di u cuntrollu, sta linea serà eseguita.

Eccu un snippet di codice per un esempiu di cumu funziona stu operatore.

numeru = int(input ("Inserisci un numeru: "))

se numeru > 10:

    print ("U numeru hè più grande di 10")

Stu prugramma dumanda à l'utilizatore per un numeru è verifica s'ellu hè più grande di 10. Sì cusì, torna l'infurmazioni appropritate. Per esempiu, se l'utilizatore inserisce u numeru 5, u prugramma hà da finisce solu, è questu hè.

Ma s'è vo specificà u numeru 100, allura l'interprete capisce chì hè più di deci, è rapporta.

Attenzione! In u nostru casu, se a cundizione hè falsa, u prugramma si ferma, perchè nisuna cumanda hè datu dopu à l'istruzzioni.

Ci hè solu un cumandamentu in u codice sopra. Ma ci sò assai più di elli. L'unicu requisitu hè di indentà.

Avà analizemu sta sequenza di cumandamenti.

numeru = int(input ("Scrivi un numeru: "))

se numeru > 10:

    stampa ("prima linea")

    stampa ("seconda linea")

    stampa ("terza linea")

print ("A linea chì hè eseguita, indipendentemente da u numeru inseritu")

print ("Fine l'applicazione")

Pruvate à indovinà quale serà u risultatu se inserite i valori 2, 5, 10, 15, 50.

Comu pudete vede, se u numeru inseritu da l'utilizatore hè più di dece, allora trè linee sò uscita + una cù u testu "Esegui ogni volta ..." è una "Fine", è se menu di deci, allora una sola, cù un testu differente. Solu e linee 3,4,5 seranu eseguite se veru. In ogni casu, l'ultime duie linee seranu scritte, ùn importa micca u numeru chì l'utilizatore specifica.

Se utilizate e dichjarazioni direttamente in a cunsola, u risultatu serà diversu. L'interprete accende immediatamente u modu multi-linea se, dopu avè specificatu u criteriu di verificazione, presse Enter.

Supponi chì avemu scrittu a sequenza di cumandamenti seguenti.

>>>

>>> n = 100

>>> se n > 10:

...

Dopu quì, videremu chì >>> hè statu rimpiazzatu da ellipsis. Questu significa chì u modu di input multiline hè attivatu. In parolle simplici, se pressu Enter, sarete trasferitu à l'input di a seconda tappa di l'istruzzioni. 

È per esce da stu bloccu, avete bisognu di aghjunghje una custruzzione più à u bloccu if.

>>>

>>> n = 100

>>> se n > 10:

… print(«nv 10»)

...

Se a cundizione ùn hè micca vera, u prugramma finisci. Questu hè un prublema, postu chì l'utilizatore pò percive un tali prugramma cum'è chjusu per un fallimentu. Per quessa, hè necessariu di dà feedback à l'utilizatori. Per questu, un ligame hè utilizatu si-altru.

operatore d'espressione si-altru

Questu operatore permette di implementà un ligame: se l'espressione currisponde à una certa regula, eseguisce queste azzioni, è se no, allora altri. Questu hè, permette di dividisce u flussu di u prugramma in duie strade. A sintassi hè intuitiva:

se cundizione:

    # se bluccatu

    dichjarazione 1

    dichjarazione 2

    eccetera

altru:

    # altri bloccu

    dichjarazione 3

    dichjarazione 4

    eccetera:

Spieghemu cumu funziona stu operatore. Prima, a dichjarazione standard hè eseguita in u filu tassu, verificate s'ellu currisponde cundizione "veru" o "falsu". Ulteriori azzioni dipendenu da i risultati di u cuntrollu. Se vera, l'istruzzione chì hè in a sequenza di istruzzioni dopu à a cundizione hè eseguita direttamente. tassu, s'ellu hè falsu, allora altru

Questu modu pudete trattà l'errori. Per esempiu, l'utilizatore hà bisognu di entre un raghju. Ovviamente, pò esse solu un numeru cù un signu più, o hè un valore nulu. S'ellu hè menu di 0, allora avete bisognu di emette un missaghju chì vi dumanda di inserisce un numeru pusitivu. 

Eccu u codice chì implementa stu compitu. Ma ci hè un sbagliu quì. Pruvate à indovinà quale. 

radius = int(input ("Inserisci raggiu: "))

se raghju >= 0:

    print ("Circunferenza = ", 2 * 3.14 * raghju)

    print("Area = ", 3.14 * raghju ** 2)

    altru:

        print ("Per piacè inserisci un numeru pusitivu")

Errore di mancata indentazione. Se è altru deve esse situatu senza elli o cù u listessu numeru di elli (secondu s'ellu sò nidificati o micca).

Demu un altru casu d'usu (induve tuttu serà currettu cù l'allinjamentu di l'operatore) - un elementu di l'applicazione chì verifica una password.

password = input ("Inserisci password: ")

if password == «sshh»:

    print ("Benvenutu")

altru:

    print("Access denied")

Questa struzzione salta a persona più in più se a password hè sshh. Se qualsiasi altra combinazione di lettere è numeri, allora mostra u missaghju "Access denied".

dichjarazione-espressione if-elif-else

Solu se parechje cundizioni ùn sò micca veri, a dichjarazione chì hè in u bloccu hè eseguita. altru. Questa espressione funziona cusì.

se condition_1:

    # se bluccatu

    affirmazioni

    affirmazioni

    più dichjarazione

elif condition_2:

    # primu bloccu elif

    affirmazioni

    affirmazioni

    più dichjarazione

elif condition_3:

    # secondu bloccu elif

    affirmazioni

    affirmazioni

    più dichjarazione

...

altru

    affirmazioni

    affirmazioni

    più dichjarazione

Pudete specificà ogni quantità di cundizioni supplementari.

Dichjarazioni nidificate

Un altru modu per implementà parechje cundizioni hè di inserisce cuntrolli di cundizione supplementari in u bloccu if.

Operator if in un altru bloccu di cundizione

gre_score = int(input ("Inserite u vostru limitu di creditu attuale"))

per_grad = int(input ("Inserisci a vostra valutazione di creditu: "))

se per_grad > 70:

    # esterno se bluccatu

        se gre_score > 150:

            # internu se bloccu

    print ("Felicitazioni, avete ricevutu un prestitu")

altru:

    print ("Scusate, ùn site micca eligibile per un prestitu")

Stu prugramma faci un cuntrollu di qualificazione di creditu. S'ellu hè menu di 70, u prugramma informa chì l'utilizatore ùn hè micca eligibile per u creditu. S'ellu hè più grande, una seconda verificazione hè realizata per vede s'ellu u limitu di creditu attuale hè più grande di 150. Se sì, allora un missaghju hè visualizatu chì u prestitu hè statu emessu.

Se i dui valori sò falsi, allora un missaghju hè visualizatu chì l'utilizatore ùn hà micca a pussibilità di ottene un prestitu. 

Avà ritruvaremu un pocu stu prugramma.

gre_score = int(input ("Inserisci u limitu attuale: "))

per_grad = int(input ("Inserisci puntuazione di creditu: "))

se per_grad > 70:

    se gre_score > 150:

        print ("Felicitazioni, avete ricevutu un prestitu")

    altru:

        print ("U vostru limitu di creditu hè bassu")

altru:

    print ("Scusate, ùn site micca eligibile per u creditu")

U codice stessu hè assai simili, ma nidificatu if furnisce ancu un algoritmu in casu chì a cundizione da ellu risulta falza. Questu hè, u limitu di a carta hè insufficiente, ma a storia di creditu hè bona, u missaghju "Avete un rating di creditu bassu" hè visualizatu.

dichjarazione if-else in una cundizione altru

Facemu un altru prugramma chì determina a qualità di un studiente basatu nantu à i risultati di testi.

score = int(input ("Inserite u vostru puntuazione: "))

se score >= 90 :

    print("Grande! U vostru gradu hè A")

altru:

    se score >= 80 :

print("Grande! U vostru gradu hè B")

    altru:

se score >= 70 :

    print ("Bè! U vostru gradu hè C")

altru:

    se score >= 60 :

print ("U vostru gradu hè D. Vale a pena ripetiri u materiale.")

    altru:

print ("Avete fallutu l'esame")

L'applicazione verifica prima per vede s'ellu u puntuatu hè più grande o uguale à 90. Se sì, torna una nota A. Se sta cundizione hè falsa, i cuntrolli successivi sò realizati. Avemu vistu chì l'algoritmu hè quasi u listessu à u primu sguardu. Allora invece di verificà l'internu altru megliu aduprà una cumminazzioni se-elif-altru.

Allora l'operatore if esegue una funzione assai impurtante - assicura chì certi pezzi di codice sò eseguiti solu s'ellu ci hè bisognu. Hè impussibile di imaginà a prugrammazione senza ellu, perchè ancu l'algoritmi più simplici necessitanu forche cum'è "se vai à a manca, truverete, è se vai à a diritta, allora avete bisognu di fà questu è quellu".

Lascia un Audiolibro