Python – Le funzioni:
- Creare una funzione
- Chiamata di funzione
- Funzioni con argomenti
- Passare un numero non prefissato di argomenti
- Passare una lista di argomenti
- Assegnare un valore di default ad un parametro
- Funzioni che restituiscono un valore
- Esempio: numero primo
- Link utili
Creare una funzione
Per definire una funzione si utilizza la parola chiave def
seguita dal nome della funzione :
def example_function():
print("Hello World!")
Chiamata di funzione
per richiamare una funzione si deve semplicemente scrivere il suo nome seguito dalla coppia di parentesi tonde
example_function()
Funzioni con argomenti
Ricordiamo che Python ha il type checking dinamico quindi per avere degli argomenti da passare alla funzione basta aggiungerli tra le parentesi tonde in fase di definizione della funzione stessa
def example_function(name):
print("Hello " + name)
analogamente alle funzioni senza parametri, la chiamata avviene scrivendo il nome della funzione e il parametro che gli vogliamo passare
example_function("PuffoGino")
Passare un numero non prefissato di argomenti
Per passare un numero non prefissato di argomenti aggiungi due asterischi: ** prima del nome del parametro nella definizione della funzione.
def my_cats(**cats):
print("The name of my second cat is " + cats["second"])
my_cats(first = "PuffoGino", second = "Nino")
Passare una lista di argomenti
Per passare una lista di argomenti la inseriamo tra le parentesi tonde e possiamo con un ciclo for percorrerla e stampare i valori come nel seguente codice
def my_cats(cats):
for cat in cats:
print(cat)
cats = ["PuffoGino", "Nino", "Gingerino"]
my_cats(cats)
Assegnare un valore di default ad un parametro
Per dare un valore di default ad un parametro è sufficiente assegnarlo all’interno delle parentesi tonde come nel seguente esempio
def my_cats_food(food = "Crocchini"):
print("My cats eat " + food)
my_cats_food("Hamburger")
my_cats_food("Polpette")
my_cats_food()
my_cats_food("Bustina")
Funzioni che restituiscono un valore
def square(num):
return num * num
num=5
print("il quadrato di ", num, " vale: ", square(num))
Esempio: numero primo
Per prima cosa definiamo la funzione che tramite un ciclo for
testa i divisori da 2 a num-1
, nel caso un numero sia un divisore di num
la funzione restituisce 0, se non è mai uscita con il valore 0 restituisce 1 perché il numero è primo.
Nel programma principale validiamo l’input con un ciclo infinito ( while True:
) che termina tramite l’istruzione break
quando l’utente inserisce un numero positivo, infine controlliamo il risultato della funzione primo applicato al numero letto num
def primo(num):
for i in range(2,num):
if num % i == 0:
return 0
return 1
while True:
num=int(input("Inserisci un numero positivo intero "))
if num > 0:
break
if primo(num) == 1:
print("il numero inserito è primo")
else:
print("Il numero inserito non è primo")