Pregunta 1¿Qué imprime el siguiente código?def f(x, y=10):
return x + y
print(f(3))
Definir funciones con def — argumentos, valores de retorno, argumentos por defecto y por palabra clave
Aprende a definir funciones con def y return, y a usar argumentos por defecto y por palabra clave en Python.
Cuando la misma lógica necesita ejecutarse muchas veces, quieres una forma de darle a esa lógica un nombre y llamarla desde donde la necesites. Ese mecanismo es una función, definida con la palabra clave def.
Con funciones, la lógica compartida vive en un solo lugar y cada sitio de llamada es una sola línea. Todo lo que has usado hasta ahora — print() / len() / int() / sum() — también es una función.
Lo básico de def y return
Define una función con def nombre_funcion(argumentos): e indenta el cuerpo. Devuelve un valor al que llamó con return valor. Una función sin return efectivamente devuelve None.
El argumento es lo que el llamante entrega a la función, y el valor de retorno es lo que la función envía de vuelta vía return. Como la misma función puede llamarse con argumentos distintos para resultados distintos, una sola definición puede alimentar muchos sitios de llamada.
Una función creada con def no se ejecuta al quedar registrada en el espacio de nombres. El cuerpo solo corre cuando ocurre una llamada como greet("Ana") — y el valor de return regresa al llamante.
# Sin argumentos, sin valor de retorno
def print_hello():
print("Hello World")
print_hello() # Hello World
# Dos argumentos, un valor de retorno
def max_num(a, b):
if a >= b:
return a
return b
result = max_num(30, 20)
print(result) # 30
# return sale de la función; lo que venga después no se ejecuta
def check(x):
if x < 0:
return "negativo"
return "no negativo"
print(check(-5)) # negativo
Argumentos por defecto y argumentos por palabra clave
Añadir = valor a un argumento establece un valor por defecto que se usa cuando el llamante lo omite (un argumento por defecto).
En el lado de la llamada, nombre_argumento=valor te permite pasar valores por nombre independientemente de la posición (argumentos por palabra clave). Los argumentos por defecto se colocan por convención al final de la lista de argumentos para que el orden no importe.
# Dale a greeting un valor por defecto
def greet(name, greeting="Hola"):
return f"{greeting}, {name}"
print(greet("Ana")) # Hola, Ana
print(greet("Carlos", "Buenos días")) # Buenos días, Carlos
print(greet(greeting="Buenas noches", name="María")) # los argumentos por palabra clave se pueden reordenar
# Salida: Buenas noches, María
En este artículo aprendiste definiciones de funciones con def, valores de retorno con return, y argumentos por defecto y por palabra clave. Cuando uses funciones con fluidez, la misma lógica puede invocarse desde cualquier sitio tantas veces como quieras, y la legibilidad del código mejora sustancialmente.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué llamada usa argumentos por palabra clave?def greet(name, greeting="Hi"):
return f"{greeting}, {name}"
Pregunta 3¿Qué produce el siguiente código?def g(x):
x + 1 # sin return
result = g(10)
print(result)