Accademia:Strutture di controllo: differenze tra le versioni
(→If) |
S3v (discussione | contributi) (tolto "stub") |
||
(7 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Acc_Menu_Python}} | ||
__TOC__ | |||
==If== | ==If== | ||
Il più conosciuto tra le strutture di controllo è sicuramente l'''if''. Questo comando permette di effettuare delle scelte all'interno del codice, a seconda che delle condizioni da noi imposte si verifichino o meno. | Il più conosciuto tra le strutture di controllo è sicuramente l'''if''. Questo comando permette di effettuare delle scelte all'interno del codice, a seconda che delle condizioni da noi imposte si verifichino o meno. | ||
Riga 84: | Riga 84: | ||
* [[Accademia:university.py]]. | * [[Accademia:university.py]]. | ||
==For== | == For == | ||
Il ciclo | Il ciclo [http://docs.python.org/py3k/reference/compound_stmts.html#for for] è leggermente più complesso; questi andrà ad iterare sopra una sequenza, come ad esempio una [[Accademia:Oggetti predefiniti#Liste|lista]]. | ||
<pre> | <pre> | ||
>>> costruzioni = ['casa', 'villa', 'appartamento', 'monolocale'] | >>> costruzioni = ['casa', 'villa', 'appartamento', 'monolocale'] | ||
>>> for i in costruzioni: | >>> for i in costruzioni: | ||
... print("Ora sono sull'oggetto:", i) | |||
... | |||
Ora sono sull'oggetto: casa | |||
Ora sono sull'oggetto: villa | |||
Ora sono sull'oggetto: appartamento | |||
Ora sono sull'oggetto: monolocale | |||
</pre> | |||
In pratica la nostra variabile <code>i</code> ad ogni ciclo prenderà il valore di un elemento della lista passata; la prima volta sarà il primo ('casa'), la seconda 'villa' e così via. | |||
Un piccolo [http://docs.python.org/py3k/tutorial/datastructures.html#looping-techniques trucco] per numerare i valori che vogliamo restituire usando la funzione <code>enumerate()</code>: | |||
<pre> | |||
( | >>> menu = ['pizza','hot dog','zuppa di fagioli'] | ||
( | >>> for indice in enumerate(menu): | ||
( | ... print(indice) | ||
... | |||
(0, 'pizza') | |||
(1, 'hot dog') | |||
(2, 'zuppa di fagioli') | |||
</pre> | </pre> | ||
Miglioriamo l'output inserendo la variabile <code>x</code>, a cui viene assegnato il numero dell'elemento : | |||
<pre> | |||
>>> for x, indice in enumerate(menu): | |||
... print(x, indice) | |||
... | |||
0 pizza | |||
1 hot dog | |||
2 zuppa di fagioli | |||
</pre> | |||
---- | ---- | ||
:[[Utente:Tuxerrante|Tuxerrante]] | :[[Utente:Tuxerrante|Tuxerrante]] | ||
[[Categoria:Accademia Python - Lezione 3]] | [[Categoria:Accademia Python - Lezione 3]] | ||
[[Categoria:Accademia Python - Lezione 4]] | [[Categoria:Accademia Python - Lezione 4]] |
Versione attuale delle 13:35, 7 giu 2015
If
Il più conosciuto tra le strutture di controllo è sicuramente l'if. Questo comando permette di effettuare delle scelte all'interno del codice, a seconda che delle condizioni da noi imposte si verifichino o meno. Per esempio:
if [condition1]: do_something elif [condition2]: do_something_different else: do_something_else
Se la prima condizione è vera (restituisce True) allora entra nel blocco sottostante; elif è l'abbreviazione di else if ovvero 'altrimenti se', e serve a verificare la validità di un'altra condizione quando la prima è già risultata falsa. Infine, quando nessuna delle precedenti è vera, si possono indicare tutti i valori rimante con il blocco else (in Italiano 'altrimenti').
a, b = 2, 3 # a = 2 b = 3 if a < b: print(" Il valore di 'a' e' minore di quello in 'b' !") elif a > b: print(" Il valore di 'b' e' minore di quello in 'a' !") else: print(" Le due variabili sono uguali !")
Attenzione al fatto che elif è diverso da if! Ad esempio:
Codice |
x = 19 if x > 18: print('sei maggiorenne') elif x > 10: print('sei un teenager') else: print('sei un bambino') |
x = 19 if x > 18: print('sei maggiorenne') if x > 10: print('sei un teenager') else: print('sei un bambino') |
Output | sei maggiorenne |
sei maggiorenne sei un teenager |
While
Il ciclo while ripete un blocco di codice finché l'espressione nella condizione iniziale é vera. Si puó uscire con il comando break, o terminerá automaticamente quando l'espressione sará falsa; Il break diventa obbligatorio quando si usano espressioni sempre vere (es: while True: )
while [condition1]: do_something if [condition2]: break
>>> inizio, fine = 0, 5 >>> while inizio < fine: print(" Esecuzione del ciclo numero ", inizio) inizio += 1 Esecuzione del ciclo numero 0 Esecuzione del ciclo numero 1 Esecuzione del ciclo numero 2 Esecuzione del ciclo numero 3 Esecuzione del ciclo numero 4
while True: x = input(" Inserisci quello che vuoi per continuare, o 'exit' per uscire : ") if x == 'exit': break
- Vedi anche questo [post].
Gli Scritp della lezione 4:
For
Il ciclo for è leggermente più complesso; questi andrà ad iterare sopra una sequenza, come ad esempio una lista.
>>> costruzioni = ['casa', 'villa', 'appartamento', 'monolocale'] >>> for i in costruzioni: ... print("Ora sono sull'oggetto:", i) ... Ora sono sull'oggetto: casa Ora sono sull'oggetto: villa Ora sono sull'oggetto: appartamento Ora sono sull'oggetto: monolocale
In pratica la nostra variabile i
ad ogni ciclo prenderà il valore di un elemento della lista passata; la prima volta sarà il primo ('casa'), la seconda 'villa' e così via.
Un piccolo trucco per numerare i valori che vogliamo restituire usando la funzione enumerate()
:
>>> menu = ['pizza','hot dog','zuppa di fagioli'] >>> for indice in enumerate(menu): ... print(indice) ... (0, 'pizza') (1, 'hot dog') (2, 'zuppa di fagioli')
Miglioriamo l'output inserendo la variabile x
, a cui viene assegnato il numero dell'elemento :
>>> for x, indice in enumerate(menu): ... print(x, indice) ... 0 pizza 1 hot dog 2 zuppa di fagioli