Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

Multiple Function Arguments


Cada función en Python recibe un predeterminado número de argumentos, si es declarada normalmente, como esta:

def myfunction(first, second, third):
    # Haz algo con las tres variables
    ...

Es posible declarar funciones que reciban un número variable de argumentos, usando la siguiente sintaxis:

def foo(first, second, third, *therest):
    print("First: %s" % first)
    print("Second: %s" % second)
    print("Third: %s" % third)
    print("And all the rest... %s" % list(therest))

La variable "therest" es una lista de variables, que recibe todos los argumentos que fueron dados a la función "foo" después de los tres primeros argumentos. Así que llamando foo(1,2,3,4,5) imprimiremos:

def foo(first, second, third, *therest):
    print("First: %s" %(first))
    print("Second: %s" %(second))
    print("Third: %s" %(third))
    print("And all the rest... %s" %(list(therest)))

foo(1,2,3,4,5)

También es posible enviar argumentos de funciones por clave, para que el orden del argumento no importa, usando la siguiente sintaxis. El siguiente código produce la siguiente salida:

The sum is: 6 Result: 1

def bar(first, second, third, **options):
    if options.get("action") == "sum":
        print("The sum is: %d" %(first + second + third))

    if options.get("number") == "first":
        return first

result = bar(1, 2, 3, action = "sum", number = "first")
print("Result: %d" %(result))

La función "bar" recibe tres argumentos. Si se recibe un argumento "action" adicional, y ordena que se haga un resumen de los números, se imprimirá el resumen. Alternativamente, la función tambien debe devolver el primer argumento, si el valor del parámetro "number", pasado a la función, es igual a "first".

Exercise

Rellena las funciones foo y bar para que puedan recibir una cantidad variable de argumentos (tres o más) La función foo debe devolver la cantidad de argumentos extra recibidos. bar debe devolver True si el argumento con la clave magicnumber vale 7, y False en cualquier otro caso.


This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!