Accademia:Strutture di controllo: differenze tra le versioni
(→For) |
S3v (discussione | contributi) (tolto "stub") |
||
(16 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Acc_Menu_Python}} | ||
__TOC__ | |||
==If== | ==If== | ||
Il | 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: | Per esempio: | ||
<pre>if | <pre>if [condition1]: | ||
do_something | do_something | ||
elif [condition2]: | elif [condition2]: | ||
Riga 11: | Riga 11: | ||
do_something_else | do_something_else | ||
</pre> | </pre> | ||
Se la prima condizione | 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'). | ||
<pre> | <pre> | ||
a,b = 2,3 # a=2 b=3 | a, b = 2, 3 # a = 2 b = 3 | ||
if a<b: | if a < b: | ||
print(" Il valore di 'a' e' minore di quello in 'b' !") | print(" Il valore di 'a' e' minore di quello in 'b' !") | ||
elif a>b: | elif a > b: | ||
print(" Il valore di 'b' e' minore di quello in 'a' !") | print(" Il valore di 'b' e' minore di quello in 'a' !") | ||
else: | else: | ||
print(" Le due variabili sono uguali !") | print(" Le due variabili sono uguali !") | ||
</pre> | </pre> | ||
Attenzione al fatto che ''elif'' è diverso da ''if''! Ad esempio: | |||
{|width=100% style="border: 1px solid #ccc;" | |||
| | |||
Codice | |||
| | |||
<pre> x = 19 | |||
if x > 18: | |||
print('sei maggiorenne') | |||
elif x > 10: | |||
print('sei un teenager') | |||
else: | |||
print('sei un bambino')</pre> | |||
| <pre> x = 19 | |||
if x > 18: | |||
print('sei maggiorenne') | |||
if x > 10: | |||
print('sei un teenager') | |||
else: | |||
print('sei un bambino')</pre> | |||
|- | |||
| Output | |||
| <pre>sei maggiorenne</pre> | |||
| <pre>sei maggiorenne | |||
sei un teenager</pre> | |||
|} | |||
==While== | ==While== | ||
Riga 32: | Riga 58: | ||
<pre> | <pre> | ||
>>> inizio,fine = 0,5 | >>> inizio, fine = 0, 5 | ||
>>> while inizio<fine: | >>> while inizio < fine: | ||
print(" Esecuzione del ciclo numero ",inizio) | print(" Esecuzione del ciclo numero ", inizio) | ||
inizio +=1 | inizio += 1 | ||
Esecuzione del ciclo numero 0 | Esecuzione del ciclo numero 0 | ||
Riga 47: | Riga 73: | ||
while True: | while True: | ||
x = input(" Inserisci quello che vuoi per continuare, o 'exit' per uscire : ") | x = input(" Inserisci quello che vuoi per continuare, o 'exit' per uscire : ") | ||
if x=='exit': | if x == 'exit': | ||
break | break | ||
</pre> | </pre> | ||
* Vedi anche questo [[http://forum.debianizzati.org/viewtopic.php?f=60&t=42751| post]]. | |||
Gli Scritp della lezione 4: | |||
* [[Accademia:calcolatrice.py]]; | |||
* [[Accademia:login.py]]; | |||
* [[Accademia:university.py]]. | |||
== For == | |||
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 Lezione 3]] | [[Categoria:Accademia Python - Lezione 3]] | ||
[[Categoria:Accademia 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