Le funzioni in Python non sono statiche: possono essere potenziate con argomenti di default e argomenti per parola chiave per renderle più versatili e leggibili, adattandosi a diverse esigenze di programmazione.
Gli argomenti di default consentono di specificare un valore predefinito per un parametro della funzione.
# Funzione con argomento di default `discount`
def apply_discount(price, discount=0.10):
discounted_price = price * (1 - discount)
return discounted_price
# Usando il valore di default
default_discount_price = apply_discount(100)
print(f"Price after applying the default discount: ${default_discount_price}")
# Sovrascrivendo il valore di default
custom_discount_price = apply_discount(100, 0.20)
print(f"Price after applying a custom discount: ${custom_discount_price}")
discount, la funzione applica 10% di default.Gli argomenti per parola chiave permettono di specificare i valori tramite il nome del parametro, migliorando leggibilità e flessibilità.
# Funzione con parametro `tax` con valore di default
def calculate_total(price, discount, tax=0.05):
total = price * (1 + tax) * (1 - discount)
return total
# Chiamata con argomenti per parola chiave
total_cost = calculate_total(price=100, discount=0.15)
print(f"Total cost after applying discount: ${total_cost}")
Creare funzioni per calcolare il costo totale di un prodotto con sconto e tassa, usando argomenti di default e keyword arguments.
Istruzioni:
Definire apply_discount(price, discount=0.05)
→ Restituisce il prezzo scontato.
Definire apply_tax(price, tax=0.07)
→ Restituisce il prezzo dopo l’aggiunta della tassa.
Definire calculate_total(price, discount=0.05, tax=0.07)
→ Combina apply_discount() e apply_tax() per restituire il prezzo totale.
Esempi di chiamata:
# Valori predefiniti
total_price_default = calculate_total(120)
print(f"Total cost with default discount and tax: ${total_price_default}")
# Valori personalizzati
total_price_custom = calculate_total(100, discount=0.10, tax=0.08)
print(f"Total cost with custom discount and tax: ${total_price_custom}")
# Funzione per applicare uno sconto
def apply_discount(price, discount=0.05):
return price * (1 - discount)
# Funzione per applicare la tassa
def apply_tax(price, tax=0.07):
return price * (1 + tax)
# Funzione per calcolare il totale combinando sconto e tassa
def calculate_total(price, discount=0.05, tax=0.07):
discounted_price = apply_discount(price, discount)
total_price = apply_tax(discounted_price, tax)
return total_price
# Calcolo con valori predefiniti
total_price_default = calculate_total(120)
print(f"Total cost with default discount and tax: ${total_price_default}")
# Calcolo con valori personalizzati
total_price_custom = calculate_total(100, discount=0.10, tax=0.08)
print(f"Total cost with custom discount and tax: ${total_price_custom}")
Output atteso:
Total cost with default discount and tax: $119.34
Total cost with custom discount and tax: $97.2
Questa soluzione mostra chiaramente:
discount=0.05, tax=0.07)apply_discount e apply_tax)