vuoi
o PayPal
tutte le volte che vuoi
PYTHON - 2
ISTRUZIONI DI SELEZIONE
1) IF I costrutti if possono essere annidati tra loro
2) MATCH = switch case ("structural pattern matching"). I
pattern vengono valutati uno alla volta dall’alto verso il basso e
quando uno ha successo il codice abbinato viene eseguito,
mentre tutti gli altri pattern vengono scartati.
Il pattern utilizzato nell'istruzione dopo la parola chiave "case"
può essere di diverse tipologie:
➔ PATTERN LETTERALE: ogni case gestisce per ogni
variabile / espressione un singolo valore
COMBINAZIONE DI PIU’ PATTERN (OR):
➔ più
modelli alternativi possono essere combinati in
uno utilizzando |. Ciò significa che il pattern
risulta vero se almeno un'alternativa è vera. Le
alternative vengono provate da sinistra a destra
➔ PATTERN CON CONTROLLO: con questo
modello non è sufficiente il match del valore
con x ma deve essere superato il test
successivo if
➔ CAPTURE MATCHING: match seleziona il
pattern che ha la medesima struttura
Questo modello può contenere una logica di
corrispondenza ancora più complessa. Ad esempio:
→
- case ["a","b"] il confronto riguarda una →
coppia di valori ben precisi - case ["a", x ] il confronto
riguarda una coppia di valori dove il primo è "a" e il secondo,
→
arbitrario, lo pone nella variabile x - case ["a", _ ] il confronto
è soddisfatto per ogni lista di 2 elementi che inizia per "a". La
→
sotto-lista restante non viene memorizzata - case ["a", *x ] il confronto
riguarda una lista con almeno 1 valore dove il primo è
→
"a". I successivi vengono posti nella variabile (lista) x - case ["a", *_ ] il confronto
è soddisfatto per ogni lista che inizia per "a". La sottolista
restante non viene memorizzata.
3) TRY EXCEPT = permette di intercettare gli errori durante l'esecuzione di un
blocco di istruzioni e di correggerli. Consente quindi di evitare uno stop nell'esecuzione
del programma
a) SEMPLICE = viene eseguito il blocco_try e se non ci sono
errori lo completa ignorando il blocco_Error
associato all'except. Se invece si presenta un
errore l'esecuzione passa al blocco_Error
senza che l'esecuzione venga fermata
b) ARTICOLATA
= è possibile maneggiare specifici errori aggiungendo ulteriori sezioni except
con a fianco il codice dell'errore che si intende gestire.
= la sezione except senza alcun codice di errore associato è detta except di
default e permette di intercettare tutte le eccezioni. Tale clausola va messa in
fondo a tutte le clausole
= else è un'altra clausola facoltativa del costrutto che viene eseguita soltanto se
non sorge alcuna eccezione
= finally è anch'essa una clausola facoltativa viene eseguita in ogni caso, al
termine delle altre, anche se non si verifica alcuna eccezione
= Se non intendo eseguire nulla in corrispondenza di una sezione (voglio evitare
che il programma si fermi a causa di un errore) posso usare l'istruzione pass
4) INLINE IF = Python ha un operatore ternario che permette di eseguire istruzioni
condizionali if in una singola riga. La riduzione dello spazio aumenta la leggibilità del
codice
5) ASSERT = l'istruzione assert genera un errore quando la condizione associata è
falsa. Il suo funzionamento è simile all'istruzione if solo che generando un'eccezione
(AssertionError) il programma termina quando la condizione è falsa. Se è stata definita
l'istruzionecondizionata questa verrà eseguita al termine della gestione dell'errore. Se
la condizione è vera, non succede nulla e l'esecuzione prosegue con l'istruzione
immediatamente successive.
ISTRUZIONI DI ITERAZIONE
1) WHILE = consente di ripetere un blocco di codice fino a
quando la condizione risulta vera. Si usa quando il numero di
iterazioni necessarie non è noto in anticipo
= spesso per inizializzare la condizione del while è
necessario eseguire, fuori dal loop, almeno una volta il bloccoIterato
= incrementi da fare con n+=1
= 2 istruzioni molto importanti:
- break: interrompe ed esce dal ciclo. Il controllo passa alla prima istruzione
successiva alla struttura iterativa (quindi non eseguirà la componente else!)
- continue: interrompe l'iterazione corrente senza uscire dal ciclo. Il controllo
passa alla successiva iterazione (viene quindi riverificata la condizione!)
* ES A)
➔ simula costrutto iterativo a condizione finale repeat-until