Riprendiamo la serie su Python con un argomento estremamente interessante: le funzioni. Una funzione è in generale un raggruppamento di codice che può essere eseguito più volte, richiamato in vari punti del programma e sempre uguale. Può ricevere degli argomenti e restituire un valore. In questo articolo vediamo tutto con degli esempi.
La prima funzione
La parola chiave che introduce la definizione di una funzione è def. Dopo si scrive il nome, le parentesi con gli eventuali argomenti (qui non ce ne sono) e due punti, che introducono un blocco di codice. Il corpo, rientrato, è una semplice print:
def ciao():
print("Ciao mondo")
ciao()
La funzione non ha né argomenti né valore di ritorno: è davvero minimale. La si richiama invocando il nome con le parentesi. Eseguendo il programma:
python3 funzioni.py
L’output è:
Ciao mondo
Possiamo chiamare la funzione più volte senza riscrivere le istruzioni al suo interno: il codice viene eseguito a ogni chiamata.
Argomenti
Ora una funzione che accetta due argomenti: somma due numeri. Non facciamo le cose complicate e stampiamo il risultato. Anche qui non c’è valore di ritorno: la funzione è void, cioè non restituisce niente, prende due argomenti e stampa la loro somma.
def somma(a, b):
print(a + b)
somma(3, 5)
L’output è:
8
Valore di ritorno
Facciamoci restituire un valore. Ridefiniamo la somma e chiamiamola rsomma, cioè “restituisci somma”. Stavolta usiamo return, che restituisce al codice chiamante il valore che gli passiamo.
def rsomma(a, b):
return a + b
Una funzione che restituisce un valore può essere usata in posti speciali: come membro destro di un’assegnazione, oppure come argomento di un’altra funzione, come print.
s1 = rsomma(3, 2)
print(rsomma(3, 2))
print(s1)
Il programma completo e l’output, che è un 5 per ogni print:
def rsomma(a, b):
return a + b
s1 = rsomma(3, 2)
print(rsomma(3, 2))
print(s1)
L’output è:
5
5
Valori di default
Una possibilità avanzata è assegnare un valore di default a un argomento. Definiamo una funzione, che chiamiamo p_ciao a caso, e all’argomento nome assegniamo come default “mondo”. Poi stampiamo “Ciao ” concatenato al nome:
def p_ciao(nome="mondo"):
print("Ciao " + nome)
p_ciao()
p_ciao("Mario")
Il primo richiamo, senza argomenti, usa il valore di default; nel secondo passiamo un argomento. L’output è:
Ciao mondo
Ciao Mario
Chiusura
Questa è un’introduzione. Sulle funzioni ci sarebbero altre cose da dire, ma sono argomenti un po’ più avanzati: il video di approfondimento si fa se lo chiedete nei commenti. Intanto aprite il vostro editor e pasticciate con le funzioni.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- Definire le funzioni — dal tutorial ufficiale, in italiano
- Istruzioni composte: def — il riferimento del linguaggio, in italiano
- Il tutorial di Python — in italiano
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
ma se vuoi offrirmi un caffè, mi aiuterà a rimanere sveglio mentre registro i video 😁☕
clicca qui per scoprire come https://buymeacoffee.com/thelinuxnerd
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
