Flusso di controllo in Python
Questo articolo spiega il flusso di controllo in Python.
YouTube Video
Istruzione If in Python
L'istruzione if
in Python è una sintassi per il branching condizionale. Viene utilizzata per eseguire un blocco di codice se una specifica condizione è valutata come True
(vero).
Sintassi di Base
L'istruzione if
in Python segue fondamentalmente la struttura seguente.
1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4 # If the condition is True, execute this code block
5 print("x is greater than 5")
In questo esempio, viene stampato "x è maggiore di 5"
se la variabile x
è maggiore di 5.
Istruzione else
Utilizzando else
dopo un'istruzione if
, puoi specificare il codice da eseguire quando la condizione è falsa.
1x = 3
2
3if x > 5:
4 print("x is greater than 5")
5else:
6 print("x is less than or equal to 5")
In questo esempio, l'output sarà "x è minore o uguale a 5"
.
Istruzione elif
Se hai bisogno di verificare più condizioni, puoi utilizzare elif
, che significa "else if".
1x = 5
2
3if x > 5:
4 print("x is greater than 5")
5elif x == 5:
6 print("x is equal to 5")
7else:
8 print("x is less than 5")
In questo esempio, viene stampato "x è uguale a 5"
.
Note
- Dopo
if
,elif
oelse
è richiesto il due punti (:
). - Il blocco di codice eseguito quando una condizione è vera deve essere indentato. In Python, l'indentazione standard è solitamente di 4 spazi, ma è possibile utilizzare un altro numero di spazi purché si rimanga coerenti.
- Puoi utilizzare qualsiasi espressione che si valuti in un valore booleano come condizione. Ciò significa che puoi utilizzare espressioni condizionali combinate con operatori di confronto o logici.
Padroneggiare l'istruzione if
di Python ti consente di controllare in modo flessibile il flusso di esecuzione del programma.
Branching condizionale multiplo in Python
Esistono diversi modi per implementare una funzionalità simile a switch
in Python, simile a quella presente in altri linguaggi. In Python, è comune utilizzare istruzioni if-elif-else
o dizionari per creare strutture simili a un'istruzione switch
.
Metodo 1: istruzione if-elif-else
Il modo più semplice è utilizzare l'istruzione if-elif-else
per il ramificarsi delle condizioni.
1def switch_example(value):
2 if value == 1:
3 return "Value is one"
4 elif value == 2:
5 return "Value is two"
6 elif value == 3:
7 return "Value is three"
8 else:
9 return "Unknown value"
10
11print(switch_example(1)) # Output: Value is one
12print(switch_example(4)) # Output: Unknown value
Metodo 2: Utilizzo dei dizionari
Mappando funzioni o valori in un dizionario, è possibile creare una struttura simile a un'istruzione switch
. Questo è utile quando si vogliono eseguire operazioni diverse per valori specifici.
1def case_one():
2 return "Value is one"
3
4def case_two():
5 return "Value is two"
6
7def case_default():
8 return "Unknown value"
9
10def switch_example(value):
11 switch_dict = {
12 1: case_one,
13 2: case_two
14 }
15
16 # Use get() method to retrieve the corresponding function from the dictionary
17 # If the value is not found in the dictionary, use case_default as a fallback
18 return switch_dict.get(value, case_default)()
19
20print(switch_example(1)) # Output: Value is one
21print(switch_example(3)) # Output: Unknown value
Metodo 3: istruzione match
(Python 3.10 e successivi)
L'istruzione match
è stata introdotta in Python 3.10. È una sintassi per il pattern matching che offre una funzionalità simile a un'istruzione switch
.
1def switch_example(value):
2 match value:
3 case 1:
4 return "Value is one"
5 case 2:
6 return "Value is two"
7 case 3:
8 return "Value is three"
9 case _:
10 return "Unknown value"
11
12print(switch_example(1)) # Output: Value is one
13print(switch_example(4)) # Output: Unknown value
Riepilogo
- Istruzione
if-elif-else
: Semplice e adattabile a molti casi. - Dizionari: Utilizzare la mappatura di funzioni o valori per abilitare una ramificazione efficiente.
- Istruzione
match
: Consente una ramificazione più intuitiva in Python 3.10 e versioni successive. Il più vicino a un'istruzioneswitch
.
Cicli for
in Python
L'istruzione for
di Python viene utilizzata per iterare su ciascun elemento di un oggetto iterabile come una lista, una stringa o un dizionario. La sintassi base di un'istruzione for
è la seguente:.
1# Loop through each item in the iterable
2for variable in iterable:
3 # Execute this block of code for each item in the iterable
4 code_to_execute
Ecco alcuni esempi specifici:.
Esempio con una lista
1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3 print(fruit)
Questo codice chiama la funzione print
per ogni elemento nella lista fruits
, stampando il nome di ogni frutto.
Esempio con range()
La funzione range()
genera numeri interi in un intervallo specificato, risultando utile per iterazioni numeriche.
1for i in range(5):
2 print(i)
range(5)
genera numeri interi da 0 a 4. In questo caso, 0, 1, 2, 3, 4
verranno stampati in sequenza.
Esempio con un dizionario
Nel caso dei dizionari, per impostazione predefinita vengono iterate le chiavi, ma è possibile recuperare anche coppie chiave-valore.
1person = {"name": "Alice", "age": 25}
2for key in person:
3 print(key, person[key])
In alternativa, utilizza il metodo items()
per recuperare contemporaneamente chiavi e valori.
1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3 print(key, value)
for
annidato
È anche possibile annidare i cicli for
per eseguire processi di iterazione complessi.
1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3 for num in row:
4 print(num)
Questo codice itera attraverso ogni riga della lista matrix
e produce in sequenza i numeri di ciascuna riga.
continue
per saltare un'iterazione e break
per terminare un ciclo
L'uso di continue
in un ciclo for
salterà l'iterazione corrente e passerà a quella successiva. Inoltre, l'uso di break
terminerà completamente il ciclo.
1for i in range(10):
2 if i == 5:
3 continue
4 if i == 8:
5 break
6 print(i)
In questo esempio, il ciclo salta quando i
è 5 e termina quando i
è 8. Pertanto, l'output sarà 0, 1, 2, 3, 4, 6, 7
.
Il ciclo for
di Python è altamente flessibile e può essere utilizzato in una varietà di scenari. A seconda del tipo di elaborazione iterativa che si desidera eseguire, può essere utilizzato in combinazione con liste, dizionari, stringhe e range()
.
Ciclo while
in Python
In Python, il ciclo while
è una struttura di controllo utilizzata per eseguire ripetutamente il codice all'interno del blocco fintanto che la condizione rimane True
. La sintassi di base del ciclo while
è la seguente:.
1while condition:
2 # This block of code will be executed repeatedly as long as the condition is true
3 statement1
4 statement2
5 ...
Esempio:
Nel seguente esempio, viene utilizzato un ciclo while
per stampare i numeri da 1 a 5.
1i = 1
2while i <= 5:
3 print(i)
4 i += 1
Questo codice funziona come segue.
- Inizia con
i
uguale a 1, stampai
finché è minore o uguale a 5 e incrementai
di 1 ogni volta.
Nota:
Devi tenere a mente i seguenti punti quando usi l'istruzione while
.
-
Attenzione ai cicli infiniti
- Se la condizione in un ciclo
while
è sempreTrue
, si otterrà un ciclo infinito. Devono essere eseguite operazioni appropriate per modificare la condizione; altrimenti, il programma non si fermerà.
- Se la condizione in un ciclo
-
Uso di
break
econtinue
:break
viene utilizzato quando si vuole uscire dal ciclo in modo anticipato.continue
salta l'iterazione corrente e passa a quella successiva. Fai attenzione: condizioni errate nei cicli possono portare a un ciclo infinito.
Esempio di break
:
1i = 1
2while i <= 5:
3 if i == 3:
4 break # Exit the loop when i becomes 3
5 print(i)
6 i += 1
- In questo caso, dopo che
1
e2
vengono stampati, il ciclo termina quandoi
diventa3
.
Esempio di continue
:
1i = 0
2while i < 5:
3 i += 1
4 if i == 3:
5 # Skip the print statement and move to the next loop iteration when i is 3
6 continue
7 print(i)
- In questo caso, l'output viene saltato solo per
3
, risultando in1, 2, 4, 5
. - Incrementando il valore di
i
all'inizio del ciclo, il contatore avanza anche se viene eseguitocontinue
, prevenendo così un ciclo infinito.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.