Lección 07 · 02 Listas, bucles y funciones
Funciones: empaqueta tu lógica
Una función es un trozo de código con nombre que puedes reutilizar. Escríbelo una vez, úsalo mil.
def y return
def con_iva(precio, tipo=0.21):
return precio * (1 + tipo)
print(con_iva(100)) # usa el 21 % por defecto
print(con_iva(100, 0.10)) # tipo reducidodefdefine la función; lo sangrado es su cuerpo.- Los parámetros son los huecos que rellenas al llamarla.
returndevuelve el resultado para que lo guardes o lo sigas usando. Sinreturn, la función devuelveNone.
print no es return
def mal(a, b):
print(a + b)
def bien(a, b):
return a + b
x = mal(2, 3) # imprime 5, pero x es None
y = bien(2, 3) # no imprime nada; y vale 5
print(x, y)Funciones pequeñas que se combinan
def limpiar(texto):
return texto.strip().lower()
def es_urgente(texto):
return "urgente" in limpiar(texto)
print(es_urgente(" URGENTE: revisar "))// reto 01
Una función que devuelve
Define saludar(nombre) que devuelva (no imprima) el texto Hola, <nombre>. Por ejemplo, saludar("Ana") devuelve "Hola, Ana".
main.py
¿Atascado? Ver pista
return f"Hola, {nombre}".
$ python main.py
// reto 02
Recorta un texto largo
Define recortar(texto, maximo=20) que devuelva el texto igual si tiene maximo caracteres o menos, y si es más largo, los primeros maximo caracteres seguidos de ....
main.py
¿Atascado? Ver pista
if len(texto) <= maximo:
return texto
return texto[:maximo] + "..."$ python main.py
// reto 03
Calculadora de coste
Define coste(tokens, precio_por_mil=0.002) que devuelva el coste en euros redondeado a 4 decimales.
main.py
¿Atascado? Ver pista
return round(tokens / 1000 * precio_por_mil, 4).
$ python main.py