Modifying Functions
In programmazione, le funzioni sono strumenti dinamici che possono adattarsi a situazioni ed esigenze diverse. Non sono solo blocchi di codice fissi. Puoi migliorare le funzioni per renderle più versatili e facili da usare in vari contesti.
In questo capitolo, esploreremo alcune tecniche importanti per modificare le funzioni, come l'uso di argomenti predefiniti e argomenti per parola chiave.
Iniziamo con un esempio semplice di modifica delle funzioni per migliorarne l'utilità nel nostro sistema di gestione del negozio di alimentari:
Argomenti Predefiniti
Gli argomenti predefiniti sono una caratteristica utile in Python che ti permette di specificare valori predefiniti per i parametri delle funzioni.
Nella funzione apply_discount()
, il parametro discount
è impostato a 0.10
di default. Questo significa che la funzione applicherà automaticamente uno sconto del 10% a meno che non venga specificato diversamente. Come si vede nella variabile default_discount_price
, possiamo chiamare la funzione solo con il parametro price
.
Tuttavia, se necessario, possiamo sovrascrivere il valore predefinito passando sia il price
che uno discount
personalizzato (ad esempio, 0.20
per il 20%) come dimostrato con la variabile custom_discount_price
.
# Define a function with a default `discount` argument def apply_discount(price, discount=0.10): discounted_price = price * (1 - discount) return discounted_price # Call the function without providing a `discount`, using the default value default_discount_price = apply_discount(100) print(f"Price after applying the default discount: ${default_discount_price}") # Call the function with a custom `discount` value custom_discount_price = apply_discount(100, 0.20) print(f"Price after applying a custom discount: ${custom_discount_price}")
Argomenti per Parola Chiave
Gli argomenti per parola chiave in Python ti permettono di passare argomenti nominando esplicitamente ogni parametro, rendendo le chiamate alle funzioni più leggibili e flessibili. Questo è particolarmente utile quando una funzione ha più parametri o quando l'ordine degli argomenti potrebbe essere confuso.
Nel seguente esempio, sia price
che discount
sono specificati, mentre il parametro tax
rimane al suo valore predefinito, fornendo flessibilità senza compromettere la chiarezza.
# Function where `tax` has a default value def calculate_total(price, discount, tax=0.05): total = price * (1 + tax) * (1 - discount) return total # Calling the function using keyword arguments total_cost = calculate_total(price=100, discount=0.15) print(f"Total cost after applying discount: ${total_cost}")
Nota
L'ordine dei parametri non importa quando vengono passati usando argomenti per parola chiave.
Swipe to start coding
Crea funzioni per calcolare il costo totale di un prodotto applicando uno sconto e una tassa, usando argomenti per parola chiave e valori predefiniti per flessibilità.
- Definisci
apply_discount(price, discount=0.05)
→ Restituisce il prezzo dopo l'applicazione dello sconto. - Definisci
apply_tax(price, tax=0.07)
→ Restituisce il prezzo dopo l'aggiunta della tassa. - Definisci
calculate_total(price, discount=0.05, tax=0.07)
→ Usaapply_discount()
eapply_tax()
per restituire il prezzo totale con sconto e tassa applicati. - Chiama
calculate_total(120)
usando lo sconto e la tassa predefiniti. - Chiama
calculate_total(100, discount=0.10, tax=0.08)
usando valori personalizzati tramite argomenti per parola chiave.
Requisiti di Output
- Stampa il risultato con valori predefiniti:
Costo totale con sconto e tassa predefiniti: $<total_price_default>
- Stampa il risultato con valori personalizzati:
Costo totale con sconto e tassa personalizzati: $<total_price_custom>
Nota
Quando si definiscono le funzioni, posizionare prima i parametri richiesti, seguiti dai parametri con valori predefiniti.
Quando si chiamano funzioni con argomenti per parola chiave, gli argomenti posizionali dovrebbero venire prima degli argomenti per parola chiave.
Soluzione
Grazie per i tuoi commenti!