Arbitrary Arguments (*args)
In Python, the *args
syntax is used to pass a varying number of arguments to a function. The *args
parameter allows you to pass any number of positional arguments to a function, and it collects them into a tuple.
Let's implement the multiply()
function that can accept a variable number of arguments:
1234def multiply(*args): print(args, type(args)) multiply(12, 11, 52, 33)
The function multiply()
accepts a variable number of arguments using the syntax *args
. The arguments are then stored in a tuple called args. We can use a loop to multiply all the arguments together, as shown below:
1234567891011def multiply(*args): result = 1 for arg in args: print(result, "*", arg) result *= arg return result print("Result =", multiply(12, 11, 52, 33)) print("Result without args:", multiply())
Now, you can see that our function works with no arguments as well as with many arguments.
Note
The parameter
*args
is commonly referred to as variable-length argument or arbitrary argument list.
If we need a function that should take from one/two/... to many arguments, a combination of positional arguments and arbitrary arguments, such as *args
.
12345678def multiply(first, second, *args): result = first * second for arg in args: result *= arg return result print("Correct:", multiply(5, 2, 5, 1, 3)) print("Not correct", multiply(1))
In the example above, you can see that our function returned 150 when called with 2 or more arguments and raised a TypeError when called with fewer than 2 arguments.
It is important to note that the positional arguments should be defined before the optional arguments:
123456789def multiply(first, second, *args): print("first =", first) print("second =", second) result = first * second for arg in args: result *= arg return result print("Result:", multiply(11, 22, first=33, second=44, 55))
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Pregunte me preguntas sobre este tema
Resumir este capítulo
Mostrar ejemplos del mundo real
Awesome!
Completion rate improved to 4.35
Arbitrary Arguments (*args)
Desliza para mostrar el menú
In Python, the *args
syntax is used to pass a varying number of arguments to a function. The *args
parameter allows you to pass any number of positional arguments to a function, and it collects them into a tuple.
Let's implement the multiply()
function that can accept a variable number of arguments:
1234def multiply(*args): print(args, type(args)) multiply(12, 11, 52, 33)
The function multiply()
accepts a variable number of arguments using the syntax *args
. The arguments are then stored in a tuple called args. We can use a loop to multiply all the arguments together, as shown below:
1234567891011def multiply(*args): result = 1 for arg in args: print(result, "*", arg) result *= arg return result print("Result =", multiply(12, 11, 52, 33)) print("Result without args:", multiply())
Now, you can see that our function works with no arguments as well as with many arguments.
Note
The parameter
*args
is commonly referred to as variable-length argument or arbitrary argument list.
If we need a function that should take from one/two/... to many arguments, a combination of positional arguments and arbitrary arguments, such as *args
.
12345678def multiply(first, second, *args): result = first * second for arg in args: result *= arg return result print("Correct:", multiply(5, 2, 5, 1, 3)) print("Not correct", multiply(1))
In the example above, you can see that our function returned 150 when called with 2 or more arguments and raised a TypeError when called with fewer than 2 arguments.
It is important to note that the positional arguments should be defined before the optional arguments:
123456789def multiply(first, second, *args): print("first =", first) print("second =", second) result = first * second for arg in args: result *= arg return result print("Result:", multiply(11, 22, first=33, second=44, 55))
¡Gracias por tus comentarios!