Come chiamare una funzione in Python: la guida definitiva

Come chiamare una funzione in Python: la guida definitiva

Le funzioni sono un concetto essenziale nella programmazione che consente di gestire e riutilizzare blocchi di codice. Sapere come chiamare una funzione in Python è un'abilità chiave da imparare.

In questo tutorial imparerai le basi delle funzioni di chiamata, insieme ad alcuni suggerimenti per scrivere un codice efficiente che sia più facile da capire.

Le funzioni di mastering non solo ti aiuteranno a creare codice più versatile, ma anche a semplificare il tuo processo di programmazione e migliorare la tua efficienza complessiva come sviluppatore.

Le funzioni hanno gli stessi principi di base e, una volta padroneggiate le funzioni in Python, sarai in grado di espandere la tua comprensione delle funzioni rispetto ad altri linguaggi di programmazione come Java, R, JavaScript, PHP, ecc.

Come chiamare una funzione in Python: la guida definitiva

Sommario

Cos'è una funzione?

Una funzione in Python ti consente di creare pezzi di codice riutilizzabili che possono essere chiamati in tutto il tuo programma, semplificando il tuo codice e migliorando la leggibilità. Esegue un'attività specifica o un insieme di attività e può essere richiamato più volte all'interno di un programma. 

Definizione di una funzione in Python

Ci sono due categorie principali di funzioni in Python:

  • Funzioni definite dall'utente: funzioni che un programmatore definisce per evitare la ripetizione del codice
  • Funzioni integrate : funzioni definite da qualcun altro e che possono essere utilizzate nel codice dopo aver installato i pacchetti necessari

Questa sezione del tutorial Python si concentra sulle funzioni definite dall'utente. Imparerai:

  • Come definire una funzione in Python
  • La sintassi delle funzioni
  • Come utilizzare parametri e argomenti

Funzione Sintassi

La def parola chiave, seguita dal nome della funzione e dalle parentesi, consente di definire una funzione in Python. Il corpo della funzione è rientrato e contiene il codice da eseguire quando la funzione viene chiamata. Di seguito è riportato un esempio di una funzione di base in Python:

def saluta(): print("Ciao, Mondo!") saluta()

La def parola chiave definisce una nuova funzione con il nome greet. La terza riga di codice richiama la funzione, che esegue il codice all'interno della funzione.

Come chiamare una funzione in Python: la guida definitiva

Anche la printriga nel codice sopra è una funzione. Tuttavia, se stai lavorando in un ambiente Python 2, è definito come un'istruzione. Successivamente, in Python 3, è stato modificato da istruzione a funzione.

Parametri e Argomenti

I parametri sono i segnaposto nella definizione della funzione, mentre gli argomenti sono i valori passati quando si chiama la funzione.

Per specificare i parametri, includerli tra parentesi della definizione della funzione, separati da virgole se sono presenti più parametri. Quando chiami una funzione, fornisci i valori di input chiamati argomenti. L'esempio seguente dimostra la definizione di una funzione che accetta due parametri:

def add_numbers(a, b): return a+b

L' return istruzione nel corpo della funzione restituisce l'addizione dei due argomenti passati. Puoi pensarlo come una calcolatrice, in cui inserisci valori e ottieni in cambio il risultato desiderato.

Dopo aver definito la funzione, possiamo chiamarla con argomenti a nostra scelta.

aggiungi_numeri(3, 5)

Come chiamare una funzione in Python: la guida definitiva

L'argomento dei kwargs

kwargs è l'abbreviazione di "argomenti di parole chiave" in Python. Ti consente di estendere la flessibilità di una funzione consentendo al chiamante di specificare qualsiasi numero di argomenti di parole chiave quando chiama la funzione. Gli argomenti della parola chiave vengono passati come dizionario alla funzione.

In una definizione di funzione, è possibile utilizzare la **sintassi del doppio asterisco prima del nome del parametro per accettare argomenti di parole chiave.

def mia_funzione(**kwargs): for chiave, valore in kwargs.items(): print(f"{chiave} = {valore}") mia_funzione(a=1, b=2, c=3)

In questo esempio, kwargs sarà un dizionario contenente gli argomenti della parola chiave passati alla funzione. L'output è mostrato nell'immagine qui sotto:

Come chiamare una funzione in Python: la guida definitiva

Chiamare una funzione

Chiamare una funzione significa eseguire il codice all'interno del corpo della funzione. Ci sono quattro tipi di chiamate di funzione in Python:

  • Chiamata di funzione di base
  • Chiamare con argomenti posizionali
  • Chiamare con argomenti di parole chiave

Chiamata di funzione di base

Una chiamata di funzione di base richiama la funzione senza passare alcun argomento nella funzione. Dopo aver definito una funzione, puoi chiamarla usando il suo nome seguito da parentesi.

Se la funzione non accetta argomenti, le parentesi saranno vuote. Il codice seguente è un esempio di una funzione di base.

def benvenuto_messaggio(): print("Benvenuto in LuckyTemplates!") benvenuto_messaggio()

L'esecuzione del codice precedente fornisce il seguente output:

Come chiamare una funzione in Python: la guida definitiva

Argomenti posizionali

Gli argomenti posizionali sono il tipo di argomento più comune e vengono passati alla funzione nello stesso ordine in cui sono specificati. Di seguito è riportato un esempio di una chiamata di funzione con argomenti posizionali:

def benvenuto_messaggio(nome): print(f"Benvenuto in LuckyTemplates, {nome}!") benvenuto_messaggio("Giovanni")

Nell'esempio precedente, la welcome_message()funzione accetta un argomento, name. Quando chiami questa funzione con l'argomento John, stamperà il messaggio accanto al nome.

Il codice sopra fornisce il seguente output:

Come chiamare una funzione in Python: la guida definitiva

Argomenti delle parole chiave

Un altro modo per passare argomenti a una funzione consiste nell'usare argomenti di parole chiave. Gli argomenti delle parole chiave consentono di specificare il nome del parametro insieme al suo valore, rendendo il codice più leggibile e riducendo la possibilità di passare gli argomenti nell'ordine sbagliato. 

L'esempio seguente utilizza argomenti di parole chiave per chiamare la welcome_messagefunzione:

def welcome_message(name, message='Benvenuto in LuckyTemplates!'): print(message, name) welcome_message(name='Alice', message='Buongiorno')

In questo esempio, abbiamo definito una funzione welcome_message()che ha due parametri, name, e message. Il parametro message ha un argomento predefinito di Welcome to LuckyTemplates!Quando chiamiamo la funzione, usiamo argomenti di parole chiave per passare il valore John, risultando nell'outputWelcome to LuckyTemplates! John.

Come chiamare una funzione in Python: la guida definitiva

Valori di ritorno

Quando lavori con le funzioni, spesso vorrai restituire il risultato delle operazioni all'interno del corpo della tua funzione. I valori restituiti consentono a una funzione di inviare un risultato al chiamante. Comprendendo come lavorare con valori restituiti singoli e multipli, puoi migliorare la funzionalità dei tuoi programmi Python.

Valore di ritorno singolo

Una singola funzione valore restituito restituisce un valore dalle operazioni in una funzione.

Di seguito è riportato un esempio di una singola funzione di valore restituito:

def get_greeting(nome): return "Ciao, " + nome + "!" saluto = get_saluto("Alice") print(saluto)

Nell'esempio sopra, la funzione get_greetingprende un nome mentre il suo argomento di funzione lo compila e restituisce un saluto personalizzato. Il valore restituito viene quindi memorizzato nella variabile greeting e stampato sulla console.

Come chiamare una funzione in Python: la guida definitiva

Più valori restituiti

A volte, ti verrà richiesto di restituire più di un valore da una funzione in Python. Per ottenere ciò, è possibile utilizzare una tupla o un elenco per eseguire il wrapping dei valori restituiti.

Di seguito è riportato un esempio di funzione con più valori restituiti nel linguaggio di programmazione Python.

def get_name_and_age(): return ("John", 30) nome, età = get_name_and_age() print(nome) print(età)

Come chiamare una funzione in Python: la guida definitiva

In questo esempio, get_name_and_ageè una funzione che restituisce una tupla con due valori: a name e an age.

Puoi anche restituire un elenco di valori da una funzione in Python . La funzione seguente mostra un valore restituito dall'elenco da una funzione.

def calcola_area(altezza, larghezza): return [altezza * larghezza, (altezza * larghezza) / 2] area, triangolo_area = calcola_area(10, 5) print(area) print(triangolo_area)

Come chiamare una funzione in Python: la guida definitiva

In questo caso, la funzione calculate_areasaccetta due argomenti, height, e width, e restituisce una lista contenente l'area di un rettangolo e l'area di un triangolo.

Passare funzioni Python come argomenti

Python ti consente di passare funzioni come argomenti ad altre funzioni. Quando una funzione accetta un'altra funzione come argomento, viene definita funzione di ordine superiore.

Il codice seguente è un esempio di passaggio di una funzione a un'altra funzione in Python:

def quadrato(x): return x * x def double(x): return x * 2 def apply_func(func, x): return func(x) result = apply_func(square, 5)

Come chiamare una funzione in Python: la guida definitiva

Funzioni nidificate

Le funzioni nidificate sono funzioni definite all'interno di un'altra funzione, note anche come funzioni interne. Questi possono essere utili durante la creazione di chiusure e codice modulare. 

Per creare una funzione nidificata, definisci semplicemente una funzione all'interno di un'altra funzione:

def funzione_esterna(x, y): def funzione_interna(z): return x + y + z risultato = funzione_interna(3) return risultato # Chiama la funzione esterna print(funzione_esterna(1, 2))

Nell'esempio precedente, inner_function è definita all'interno di outer_function. La funzione interna ha accesso alle variabili della funzione esterna, permettendole di eseguire operazioni su di esse.

Come chiamare una funzione in Python: la guida definitiva

Funzioni Lambda

Le funzioni lambda, note anche come funzioni anonime, sono un modo per creare piccole funzioni monouso in Python. Nei progetti di data science, lavorerai spesso con le funzioni Lambda per creare strutture di dati e pipeline efficienti.

Per creare una funzione lambda, puoi utilizzare la parola chiave lambda seguita da un elenco di argomenti, due punti e quindi un'espressione. L'espressione è ciò che la funzione lambda restituirà una volta chiamata. Di seguito è riportato un esempio di funzione lambda in Python:

add = lambda a, b: a + b risultato = add(3, 4) print(risultato) # Output: 7

Nell'esempio sopra, abbiamo creato una funzione lambda che accetta due argomenti ( a e b) e ne restituisce la somma. Abbiamo assegnato questa funzione lambda a una variabile chiamata add.

Come chiamare una funzione in Python: la guida definitiva

Lambda può essere utile nei seguenti scenari:

  • Come argomenti per funzioni di ordine superiore come map(), filter() e sorted().
  • Come funzioni chiave durante l'ordinamento di elenchi o dizionari.

L'esempio seguente dimostra l'utilizzo della funzione di ordine superiore filter() con lambda:

numeri = [1, 2, 3, 4, 5, 6, 7, 8, 9] numeri_pari = lista(filtro(lambda x: x % 2 == 0, numeri)) print(num_pari) # Output: [2, 4, 6, 8]


In questo esempio, abbiamo utilizzato una funzione lambda per definire i criteri di filtro per la funzione filter(). La funzione lambda controlla se un numero è pari e la funzione filter() restituisce un nuovo elenco contenente solo i numeri pari.

Come chiamare una funzione in Python: la guida definitiva

Per vedere un esempio di come le funzioni possono essere utili in diversi scenari di data science, guarda il video qui sotto:

Ricorsione

La ricorsione è una tecnica di programmazione in cui una funzione chiama se stessa. Questo può essere un modo utile per risolvere problemi complessi suddividendoli in sottoproblemi più piccoli e identici.

Quando crei una funzione ricorsiva, devi tenere a mente due cose: il caso base e il caso ricorsivo. 

  • Il caso base è la condizione che interrompe la ricorsione
  • Il caso ricorsivo è dove la funzione chiama se stessa. Il caso ricorsivo funge da iteratore per la funzione

L'esempio seguente mostra le funzioni ricorsive in Python:

def fattoriale(n): se n == 1: restituisce 1 restituisce n * fattoriale(n - 1) fattoriale(5)

In questo esempio, il caso base è when n == 1e la funzione restituisce 1. Il caso ricorsivo si verifica quando n non è uguale a 1 e la funzione si chiama con n - 1.

Come chiamare una funzione in Python: la guida definitiva

Errori comuni e risoluzione dei problemi

Se sei un programmatore principiante, ti imbatterai spesso in errori durante l'implementazione di funzioni come funzioni ricorsive e lambda. Le sezioni seguenti evidenziano alcuni errori comuni e suggerimenti per la risoluzione dei problemi per aiutarti a risolverli in modo efficiente.

1. TypeError: manca un argomento richiesto : questo errore si verifica quando non si fornisce il numero corretto di argomenti previsti dalla funzione.

def my_function(fname, lname): print(fname, lname) # Correct call my_function("John", "Doe") # Genera un errore my_function("John")

Come chiamare una funzione in Python: la guida definitiva

Per correggere questo errore, assicurati di passare il numero corretto di argomenti alla tua funzione.

2. TypeError: tipo di operando non supportato . Questo errore può verificarsi quando si tenta di utilizzare un operatore con tipi incompatibili.

def add_number(a, b): return a + b # Risultato della chiamata corretto = add_number(5, 3) print(risultato) # Solleverà un errore a causa di argomenti errati result = add_number("5", 3) print(risultato)

Come chiamare una funzione in Python: la guida definitiva

Per correggere questo errore, controlla che le tue funzioni abbiano a che fare con i tipi di dati corretti e, se necessario, prendi in considerazione l'utilizzo del cast di tipi

3. NameError: il nome 'nome_funzione' non è definito : questo errore suggerisce che la funzione non è stata definita prima di essere chiamata. 

# Ordine corretto def greet(): print("Salve!") greet() # Ordine errato arrivederci() def arrivederci(): print("Arrivederci!")

Come chiamare una funzione in Python: la guida definitiva

Per correggere questo errore, assicurati che la tua funzione sia definita correttamente e che la chiami dopo la sua definizione.

Conclusione

Per ricapitolare e aiutarti a consolidare la tua comprensione, i seguenti punti riassumono gli aspetti chiave delle funzioni di chiamata in Python:

  • Per chiamare una funzione, utilizzare il nome della funzione seguito da parentesi (ad esempio, function_name()).
  • Se la funzione accetta argomenti, includerli tra parentesi (ad esempio, function_name(arg1, arg2)).
  • È possibile creare le proprie funzioni utilizzando la parola chiave def, definendo l'ambito della funzione e gli eventuali argomenti richiesti.
  • Quando si chiama una funzione che restituisce un valore, è possibile assegnare il risultato a una variabile per un uso successivo (ad esempio, result = function_name(args)).

Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere