Python - Argomenti Predefiniti
Ciao a tutti, aspiranti programmatori Python! Oggi entreremo nel meraviglioso mondo degli argomenti predefiniti in Python. Come vostra insegnante di informatica amichevole, sono entusiasta di guidarvi in questo viaggio. Allora, afferrate la vostra bevanda preferita, mettetevi comodi e iniziamo questa avventura Python insieme!
Cos'sono gli Argomenti Predefiniti?
Prima di entrare nei dettagli, iniziamo dagli elementari. Gli argomenti predefiniti sono una funzionalità utile in Python che consente di definire parametri di funzione con valori preimpostati. Questi valori saranno utilizzati se non fornite un valore specifico quando chiamate la funzione.
Pensate agli argomenti predefiniti come una rete di sicurezza. Sono lì per catturarvi se dimenticate di specificare un valore, assicurando che la vostra funzione possa ancora funzionare senza problemi. È come avere un amico che porta sempre snack extra a una picnic - potreste non averne sempre bisogno, ma è grandioso averli solo per caso!
Perché Utilizzare Argomenti Predefiniti?
- rendono il vostro codice più flessibile.
- riducono il numero di argomenti che è necessario fornire.
- aiutano a mantenere la compatibilità con le versioni precedenti quando si aggiungono nuovi parametri alle funzioni.
Ora, vediamo come funziona tutto questo nella pratica!
Esempio di Argomenti Predefiniti
Iniziamo con un esempio semplice. Immaginate di creare una funzione per salutare le persone:
def greet(name, greeting="Ciao"):
return f"{greeting}, {name}!"
# Utilizzo della funzione
print(greet("Alice"))
print(greet("Bob", "Ciao"))
Output:
Ciao, Alice!
Ciao, Bob!
In questo esempio, greeting
è il nostro argomento predefinito. Se non specificiamo un saluto, la funzione utilizzerà "Ciao" per impostazione predefinita. Diamo un'occhiata più da vicino:
- Abbiamo definito la funzione
greet
con due parametri:name
egreeting
. -
greeting
ha un valore predefinito di "Ciao". - Quando chiamiamo
greet("Alice")
, forniamo soloname
. La funzione utilizza il valore predefinito "Ciao" per il saluto. - Quando chiamiamo
greet("Bob", "Ciao")
, forniamo sianame
chegreeting
, quindi la funzione utilizza "Ciao" invece del valore predefinito.
Esempio: Chiamata della Funzione Senza Argomenti a Chiave
Ora, diamo un'occhiata a un esempio leggermente più complesso. Creeremo una funzione per calcolare il costo totale degli articoli nel carrello della spesa:
def calculate_total(items, tax_rate=0.08, discount=0):
subtotal = sum(items)
total = subtotal * (1 + tax_rate) - discount
return round(total, 2)
# Utilizzo della funzione
cart1 = [10, 20, 30]
print(calculate_total(cart1))
print(calculate_total(cart1, 0.10))
print(calculate_total(cart1, 0.10, 5))
Output:
64.80
66.00
61.00
Spiegazione:
- La nostra funzione
calculate_total
ha tre parametri:items
(obbligatorio),tax_rate
(predefinito 0.08) ediscount
(predefinito 0). - Nella prima chiamata, forniamo solo
items
. La funzione utilizza l'aliquota di tassa predefinita e nessuno sconto. - Nella seconda chiamata, forniamo
items
e un aliquota di tassa personalizzata di 0.10. Lo sconto rimane 0. - Nella terza chiamata, forniamo tutti e tre gli argomenti:
items
, aliquota di tassa e sconto di 5.
Ricorda, quando si chiama una funzione senza argomenti a chiave, l'ordine è importante! Python assegna valori ai parametri nell'ordine in cui sono forniti.
Ogetti Mutabili come Argomenti Predefiniti
Ora, ecco dove le cose diventano un po' tristi. L'uso di oggetti mutabili (come liste o dizionari) come argomenti predefiniti può portare a comportamenti inaspettati. Vediamo cosa intendo:
def add_item(item, shopping_list=[]):
shopping_list.append(item)
return shopping_list
print(add_item("mela"))
print(add_item("banana"))
print(add_item("ciliegia"))
Output:
['mela']
['mela', 'banana']
['mela', 'banana', 'ciliegia']
Sorpresa! La lista continua a crescere con ogni chiamata. Questo succede perché la lista predefinita viene creata solo una volta quando la funzione viene definita, non ogni volta che la funzione viene chiamata.
Per evitare questo, possiamo usare None
come valore predefinito e creare una nuova lista all'interno della funzione:
def add_item(item, shopping_list=None):
if shopping_list is None:
shopping_list = []
shopping_list.append(item)
return shopping_list
print(add_item("mela"))
print(add_item("banana"))
print(add_item("ciliegia"))
Output:
['mela']
['banana']
['ciliegia']
Molto meglio! Ora ogni chiamata crea una nuova lista come previsto.
Riepilogo degli Argomenti Predefiniti di Python
Riassumiamo ciò che abbiamo imparato in una tabella comoda:
Concetto | Descrizione | Esempio |
---|---|---|
Argomento Predefinito di Base | Fornisce un valore predefinito per un parametro | def greet(name, greeting="Ciao"): |
Argomenti Predefiniti Multipli | Una funzione può avere più argomenti predefiniti | def calculate_total(items, tax_rate=0.08, discount=0): |
Ordine degli Argomenti | Gli argomenti non predefiniti devono venire prima degli argomenti predefiniti nella definizione della funzione | def func(obbligatorio, opzionale=default): |
Argomenti Predefiniti Mutabili | Evitare l'uso di oggetti mutabili come argomenti predefiniti | Usa None come predefinito e crea l'oggetto all'interno della funzione |
Argomenti a Chiave | Consentono di chiamare funzioni con argomenti nominati in qualsiasi ordine | calculate_total(items=[10, 20], discount=5) |
E qui avete fatto, ragazzi! Avete appena aumentato i vostri skills Python con gli argomenti predefiniti. Ricorda, come ogni strumento potente, usateli con saggezza. Possono rendere il vostro codice più flessibile e più facile da usare, ma attenzione con quegli oggetti mutabili predefiniti!
Continuate a praticare, rimanete curiosi e buon coding! Prima che vi rendiate conto, scriverete Python come dei professionisti. Fino alla prossima volta, questo è il vostro insegnante di informatica amichevole, che firma off!
Credits: Image by storyset