Parametri – 1

Nessun parametro

La funzione esegue un compito senza avere necessità di dati in ingresso (dalla chiamata…)

def funzione(): 
    return 10

f = funzione()  # f = 10

Uno o più parametri

La funzione esegue un compito utilizzando i dati in ingresso (ricevuti alla chiamata come valori dei parametri)

def funzione(x, y, z): 
    return x+y+z

f1 = funzione(1, 2, 3)  # f1 = 6
f2 = funzione(3, 2, 1)  # f2 = 6

Se i parametri sono utilizzati in modo diverso (o sono di tipo diverso) è necessario rispettare l’ordine

def funzione(x, y, z): 
    return x**3+y**2+z

f1 = funzione(1, 2, 3)  # f1 = 1^3+2^2+3 = 8
f2 = funzione(3, 2, 1)  # f2 = 3^3+2^2+1 = 32

Si possono scrivere i parametri in qualsiasi ordine se riferiti con il loro nome.
La prima parte di parametri può essere senza nome, se sono in ordine.

def funzione(x, y, z): 
    return x**3+y**2+z

f1 = funzione(x=10, y=2, z=3)  # f1 = 10^3+2^2+3 = 8
f2 = funzione(z=3, y=2, x=10)  # f2 =            = 8
f3 = funzione(10, z=3, y=2)    # f3 =            = 8

Valori di default

Se i parametri formali hanno un valore di default allora possono essere omessi alla chiamata

def funzione(x=1, y=2, z=3): 
    return x**3+y**2+z

f1 = funzione()         # f1 = 1^3+2^2+3  = 8
f2 = funzione(1)        # f2 = 1^3+2^2+3  = 8
f3 = funzione(1, 2, 3)  # f3 = 1^3+2^2+3  = 8
f4 = funzione(x=10)     # f4 = 10^3+2^2+3 = 1007
f5 = funzione(y=10)     # f5 = 1^3+10^2+3 = 104
f6 = funzione(z=10)     # f6 = 1^2+2^2+10 = 15

I parametri con valore di default devono essere dopo quelli tradizionali

def funzione(x, y=2, z=3): 
    return x**3+y**2+z

f1 = funzione(1)         # f1 = 1^3+2^2+3   = 8
f2 = funzione(10)        # f2 = 10^3+2^2+3  = 1007
f3 = funzione(10, y=10)  # f3 = 10^3+10^2+3 = 1103
f4 = funzione(10, z=10)  # f4 = 10^3+2^2+10 = 1014