Argomenti Posizionali Arbitrari
Conosci già gli argomenti posizionali e opzionali. Tuttavia, quando una funzione può ricevere molti input o non li conosci in anticipo, puoi utilizzare gli argomenti posizionali arbitrari. Questi permettono a una funzione di accettare un numero qualsiasi di valori.
Ogni argomento può essere qualsiasi struttura dati (lista, dizionario, ecc.). Gli argomenti arbitrari consentono di passare tutti gli oggetti necessari di questo tipo.
Per definire argomenti posizionali arbitrari, inserire un asterisco * prima del nome del parametro. Esempio:
12345678# Define function with arbitrary positional arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
Qui, *values raccoglie tutti gli argomenti posizionali passati in una tupla. All'interno della funzione, si utilizza il nome della variabile senza *. Il risultato è corretto indipendentemente dal numero di argomenti forniti.
Sebbene qualsiasi nome sia valido, la forma più comune e leggibile è *args.
1234567891011121314def example_function(*args): print(type(args)) print(args) for arg in args: print(arg) print("Call without arguments:") example_function() print("\nCall with one argument:") example_function(1) print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
Come mostrato:
- Nessun argomento →
argsè(); - Un argomento →
(1,); - Più argomenti → tutti i valori appaiono in una tupla, ad esempio
(1, 2, 3, 'hello', [4, 5, 6]).
*args si comporta come qualsiasi altra tupla, offrendo piena flessibilità nella gestione di molti input.
Swipe to start coding
Implementare una funzione calculate_total che calcola il prezzo totale degli articoli in un carrello, applicando sconti in base all'importo totale.
- Utilizzare argomenti posizionali arbitrari denominati prices nella funzione
calculate_total. - Se nessun argomento viene fornito, restituire
"Your cart is empty.". - Applicare uno sconto del 20% se il totale è $200 o superiore.
- Applicare uno sconto del 10% se il totale è $100 o superiore.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain the difference between positional and arbitrary positional arguments?
What happens if I mix regular arguments with *args in a function?
Can you show how to use *args with keyword arguments in the same function?
Fantastico!
Completion tasso migliorato a 4.17
Argomenti Posizionali Arbitrari
Scorri per mostrare il menu
Conosci già gli argomenti posizionali e opzionali. Tuttavia, quando una funzione può ricevere molti input o non li conosci in anticipo, puoi utilizzare gli argomenti posizionali arbitrari. Questi permettono a una funzione di accettare un numero qualsiasi di valori.
Ogni argomento può essere qualsiasi struttura dati (lista, dizionario, ecc.). Gli argomenti arbitrari consentono di passare tutti gli oggetti necessari di questo tipo.
Per definire argomenti posizionali arbitrari, inserire un asterisco * prima del nome del parametro. Esempio:
12345678# Define function with arbitrary positional arguments named values def calculate_sum(*values): return sum(values) # Test the function using different number of arguments print(calculate_sum(1, 2, 3)) print(calculate_sum(1, 2, 3, 4)) print(calculate_sum(1, 2, 3, 4, 5))
Qui, *values raccoglie tutti gli argomenti posizionali passati in una tupla. All'interno della funzione, si utilizza il nome della variabile senza *. Il risultato è corretto indipendentemente dal numero di argomenti forniti.
Sebbene qualsiasi nome sia valido, la forma più comune e leggibile è *args.
1234567891011121314def example_function(*args): print(type(args)) print(args) for arg in args: print(arg) print("Call without arguments:") example_function() print("\nCall with one argument:") example_function(1) print("\nCall with multiple arguments:") example_function(1, 2, 3, 'hello', [4, 5, 6])
Come mostrato:
- Nessun argomento →
argsè(); - Un argomento →
(1,); - Più argomenti → tutti i valori appaiono in una tupla, ad esempio
(1, 2, 3, 'hello', [4, 5, 6]).
*args si comporta come qualsiasi altra tupla, offrendo piena flessibilità nella gestione di molti input.
Swipe to start coding
Implementare una funzione calculate_total che calcola il prezzo totale degli articoli in un carrello, applicando sconti in base all'importo totale.
- Utilizzare argomenti posizionali arbitrari denominati prices nella funzione
calculate_total. - Se nessun argomento viene fornito, restituire
"Your cart is empty.". - Applicare uno sconto del 20% se il totale è $200 o superiore.
- Applicare uno sconto del 10% se il totale è $100 o superiore.
Soluzione
Grazie per i tuoi commenti!
single