Riferimenti: SoftPython - liste 1
Esc
Summer School Data Science 2023 - Modulo 1 informatica: Moodle
Docente: David Leoni david.leoni@unitn.it
Esercitatore: Luca Bosotti luca.bosotti@studenti.unitn.it
if
¶Riferimenti: SoftPython - if
Come eseguire codice solo se una condizione è vera?
fatto_colazione, lavato_denti = True, True
if fatto_colazione and lavato_denti:
print("fatto tutto !")
print("posso uscire di casa.")
print("Fine.")
fatto tutto ! posso uscire di casa. Fine.
Sintassi:
if ESPRESSIONE_BOOLEANA:
BLOCCO COMANDI
Cosa fare se la condizione è falsa?
fatto_colazione, lavato_denti = True, False
if fatto_colazione and lavato_denti:
print("fatto tutto !")
print("posso uscire di casa.")
else:
print("NON posso uscire di casa.")
print("Fine.")
NON posso uscire di casa. Fine.
if ESPRESSIONE_BOOLEANA:
BLOCCO COMANDI
else:
ALTRO BLOCCO COMANDI
if
: Attenzione¶RICORDATI I DUE PUNTI :
ALLA FINE DELLA LINEA DELL'IF !!!
Per indentare, usa SEMPRE 4 spazi bianchi
Sequenze di 2 soli spazi per quanto consentite non sono raccomandate.
Il comportamento di TAB dipende dal tuo editor
A seconda dell'editor che usi, premendo TAB potresti ottenere:
✪ prova a scrivere in Python Tutor il programma di prima. Prova a cambiare i valori da True
a False
e guarda che succede.
NON fare copia e incolla, scrivi a mano!
Assicurati di provare tutti i casi:
True
True
True
False
False
True
False
False
ATTENZIONE: Ricordati i :
alla fine della riga con if
!!!!
fatto_colazione, lavato_denti = True, False
if fatto_colazione and lavato_denti:
print("fatto tutto !")
print("posso uscire di casa.")
else:
print("NON posso uscire di casa.")
print("Fine.")
In Python, gli oggetti 'vuoti' hanno valore logico False
:
0
, oggetto None
, la stringa vuota ""
, lista vuota []
, ...Tutto ciò che non è 'vuoto' è considerato True
:
if ['Che', 'tempo', 'farà', 'domani?']:
print("Sole!")
else:
print("Pioggia")
Sole!
if 2 != 2:
'PERBACCO'
else:
'PERGIOVE'
<non stampa nulla!>
if 2 != 2:
print('PERBACCO')
else:
print('PERGIOVE')
PERGIOVE
if
annidati¶Si può anche mettere un if
dentro l'altro (nested if).
Esempio (funziona esattamente come il precedente):
fatto_colazione, lavato_denti = True,True
if fatto_colazione:
if lavato_denti: # NOTA: Questo blocco è indentato
print("fatto tutto !") # rispetto all'if esterno
print("posso uscire di casa!") #
else:
print("NON posso uscire di casa")
else:
print("NON posso uscire di casa")
fatto tutto ! posso uscire di casa!
✪ Modifica il programma di prima in Python Tutor per riportare lo stato delle varie azioni compiute. Elenchiamo qui i possibili casi e i risultati attesi:
True False:
ho fatto colazione
non ho lavato i denti
NON posso uscire di casa
False True
False False:
non ho fatto colazione
NON posso uscire di casa
True True:
ho fatto colazione
ho lavato i denti
fatto tutto !
posso uscire di casa!
fatto_colazione, lavato_denti = True,True
if fatto_colazione:
if lavato_denti:
print("fatto tutto !")
print("posso uscire di casa!")
else:
print("NON posso uscire di casa")
else:
print("NON posso uscire di casa")
✪✪ Prova a fare un programma in Python Tutor che ti dice se puoi uscire di casa solo se hai fatto colazione (per cui devi avere almeno un tipo di latte) e lavato i denti
ho_latte_intero = False
ho_latte_scremato = True
lavato_denti = False
# scrivi qui
✪✪ prova a fare un programma in Python Tutor che ti dice se puoi nuotare se NON hai fatto colazione E hai il salvagente
Assicurati di provare tutti i casi:
True
True
True
False
False
True
False
False
hai_salvagente = True
fatto_colazione = True
# scrivi qui
elif
1/2¶caramelle = 3
if caramelle > 10:
print('tante caramelle!')
elif caramelle > 5:
print('abbastanza caramelle!')
elif caramelle > 0:
print('poche caramelle!')
else:
print('Non ci sono caramelle!')
poche caramelle!
elif
2/2¶caramelle = 0
if caramelle > 10:
print('tante caramelle!')
elif caramelle > 5:
print('abbastanza caramelle!')
elif caramelle > 0:
print('poche caramelle!')
else:
print('Non ci sono caramelle!')
Non ci sono caramelle!
Se abbiamo fatto tanta spesa, ci faranno uno sconto, altrimenti no.
# con if normale...
spesa = 200
sconto = 0
if spesa > 100:
sconto = 0.1
else:
sconto = 0 # necessario?
print("spesa:", spesa, " sconto:", sconto)
spesa: 200 sconto: 0.1
VARIABILE = VALORE if
CONDIZIONE else
ALTRO_VALORE
spesa = 200
sconto = 0.1 if spesa > 100 else 0
print("spesa:", spesa, " sconto:", sconto)
spesa: 200 sconto: 0.1