Flusso di controllo in Python

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 o else è 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'istruzione switch.

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, stampa i finché è minore o uguale a 5 e incrementa i di 1 ogni volta.

Nota:

Devi tenere a mente i seguenti punti quando usi l'istruzione while.

  1. Attenzione ai cicli infiniti

    • Se la condizione in un ciclo while è sempre True, si otterrà un ciclo infinito. Devono essere eseguite operazioni appropriate per modificare la condizione; altrimenti, il programma non si fermerà.
  2. Uso di break e continue:

    • 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 e 2 vengono stampati, il ciclo termina quando i diventa 3.

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 in 1, 2, 4, 5.
  • Incrementando il valore di i all'inizio del ciclo, il contatore avanza anche se viene eseguito continue, prevenendo così un ciclo infinito.

Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.

YouTube Video