Python: introduzione alle funzioni in Python

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

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!