Funzioni che restituiscono un valore usando return
.
Vediamo anche come inserire una stringa di documentazione nella
funzione. In questo contesto vediamo le stringhe multilinea
(ovvero quelle aperte e chiuse da tre apici o virgolette).
Insieme studiamo il programma:
def hello(nome,età):
"""Produce un saluto personalizzato
Questa funzione produce un saluto di presentazione
che include le informazioni di `nome` ed `età`.
"""
coda = " anni."
if età == 1:
coda = " anno."
return "Ciao, sono "+nome+". Ho "+str(età)+coda
def stampa_incorniciato(testo):
lunghezza = len(testo)
cornice = '*' * (lunghezza + 4)
print(cornice)
print("* "+testo+' *')
print(cornice)
stampa_incorniciato(hello('Marcello',23))
stampa_incorniciato("Testo arbitrario.")
stampa_incorniciato(hello('Giulia',1))
************************************
* Ciao, sono Marcello. Ho 23 anni. *
************************************
*********************
* Testo arbitrario. *
*********************
*********************************
* Ciao, sono Giulia. Ho 1 anno. *
*********************************
Approfondiamo sull'identazione e sulle tuple. A proposito di tuple
cosa succede in questi quattro assegnamenti?
t = (-121,"ciao","posizione 2",293)
x0 = t
x0,x1 = t
x0,x1,x2 = t
x0,x1,x2,x3 = t
In python è possibile che una funzione restituisca più valori
insieme (ad esempio restituisca una coppia o una tripla di valori).
Questo si può fare restituendo una tupla. Ad esempio:
def divresto(N,d):
quoziente = N // d
resto = N % d
return quoziente, resto
x,y = divresto(12,7)
print(x,y)
x,y = divresto(21,5)
print(x,y)
1 5
4 1
Qui la funzione restituisce due numeri (usando la sintassi return
expr1,expr2
). L'espressione divresto(21,5)
per esempio
restituisce la coppia di numeri 4 e 1. Il numero 4 viene assegnato
ad x
, mentre il numero 1 viene assegnato a y
.
Materiale didattico
Indentazione: (schermo|stampa)
Lavoro assegnato: rivedere gli esercizi della scorsa esercitazione
e provare a completarla scrivendo funzioni per ogni esercizio.
Le funzioni dovrebbero
- ricevere i dati attraverso i parametri
- restituire il risultato attraverso
return
La lettura di parametri da tastiera e la stampa a video dei
risultati non deve essere all'interno della funzione che
risolve l'esercizio.
Rivedere le sezioni 3.11 e 6.2
Rivedere le sezioni Debug, Glossario, Esercizi dei capitoli 1,
2, e 3 del libro di testo.