Python: I cicli: il ciclo while

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

Python- le variabili

Un’altra tipologia di ciclo utilizzata da Python e da molti altri linguaggi di programmazione è il ciclo while . 

Per creare un ciclo while dobbiamo definire un’espressione booleana, che ci permetta di eseguire confronti tra i dati.

Le espressioni booleane

Le espressioni booleane disponibili in python sono:

  • == : ritorna True se le due espressioni sono uguali, altrimenti ritorna False
  • != : ritorna True se le due espressioni sono diverse, altrimenti ritorna False
  • > : ritorna True se la prima espressione è maggiore della seconda (solo numeri)
  • >= : ritorna True se la prima espressione è maggiore o uguale alla seconda (solo numeri)
  • < : ritorna True se la prima espressione è minore della seconda (solo numeri)
  • <= : ritorna True se la prima espressione è minore o uguale alla seconda (solo numeri)

print(1==1)
print(3+2==6-1)
print(1!=1)

print(“\n”)

print(5>6)
print(5<5)
print(5<=5)

print(“\n”)

print(“gatto”==”gatto”)
print(“gatto”==”cane”)
print(“cane”!=”gatto”)

Output:

True
True
False

False
False
True

True
False
True

Adesso creiamo un ciclo while che verrò eseguito fino a quando la variabile i è minore del numero che abbiamo inserito.

n = int(input("Fino a che numero vuoi stampare ? "))
i = 0
while i<n:
    print(i)
    i+=1

Output:

Fino a che numero vuoi stampare ? 10
0
1
2
3
4
5
6
7
8
9

Come vedi la differenza consiste nel fatto che questa volta tocca a noi definire l’indice e incrementarlo di volta in volta, il vantaggio di questo approccio è che possiamo modificare l’indice a nostro piacimento e non solamente incrementandolo di un valore.

n = int(input("Fino a che numero dispari vuoi stampare ? "))

i = 1

while i<n:
    print(i)
    i+=2

Output:

Fino a che numero dispari vuoi stampare ? a
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-62-c25466a0ea02> in <module>()
----> 1 n = int(input("Fino a che numero dispari vuoi stampare ? "))
      2 
      3 i = 1
      4 
      5 while i<n:

ValueError: invalid literal for int() with base 10: 'a'

Nel codice c’è un problema, se inseriamo una lettera o una parola, piuttosto che un numero, verrà generata un’eccezione di tipo ValueError, dato che non è possibile stabilire se l’indice è minore di una stringa. Cosa fare in questi casi ? Dobbiamo controllare preventivamente se l’input inserito è effettivamente un numero, possiamo farlo con un’istruzione condizionale.

Ti potrebbe interessare anche:  Nessuno può farti sentire inferiore senza il tuo consenso.

Istruzioni condizionali

Le istruzioni condizionali ci permettono di eseguire del codice solo se una determinata condizione è soddisfatta, la condizione va definita sempre tramite le espressioni booleane. Conoscendo l’espressioni booleane, possiamo definire un’istruzione condizionale inserendo un’espressione dentro un if, il codice indentato sotto l’if verrà eseguito solo se la condizione sopra è soddisfatta, cioè se il suo risultato è True.

n = input("Inserisci un numero: ")
n = int(n)

if(n%2==0):
    print("%d è un numero pari" % n)

Se il resto della divisione del numero per due è zero, allora si tratta di un numero pari e lo stampiamo.

Se invece è un numero dispari ?

Per gestire il caso in cui la condizione definita nell’ if non è soddisfatta possiamo usare un else:

n = input("Inserisci un numero: ")
n = int(n)

if(n%2==0):
    print("%d è un numero pari" % n)
else:
    print("%d è un numero dispari" % n)

Possiamo anche gestire più casi utilizzando degli elif.

n = int(input(“Da quanti anni programmi ? “))

if(n<0):
print(“Hai inventato il viaggio nel tempo ?”)
elif(n>=0 and n<=1):
print(“Sei un novellino !”)
elif(n>1 and n<=3):
print(“Stai imparando !”)
elif(n>3 and n<=5):
print(“Sarai già bravo !”)
elif(n>5 and n<=10):
print(“Sarai molto bravo !”)
else:
print(“Sarai un fenomeno !”)
 

All’interno degli elif abbiamo inserito due condizioni unendole con un and, questo è un’operatore logico.

Vedremo gli operatori logici nella prossima lezione. Stay Tuned!

Python: I cicli: il ciclo for

 

(388)

Altri articoli nella categoria "Lezioni di Informatica"

Ti potrebbe interessare anche:  Equazioni Omogenee Esponenziali: Guida Pratica con Esercizi Svolti e Applicazioni
PubblicitàPubblicità