DMarlon Studio

Lección 15 · 15 de 20

Funciones · Python

Cree sus propias funciones en Python con def, páseles datos y devuelva resultados con return, con los tiques de una cafetería.

Python · Funciones en DMarlon Studio: el código del ejemplo y su salida en la terminal

Una función es un bloque de código con nombre que se puede usar tantas veces como haga falta. Se crea con def, el nombre, paréntesis y dos puntos; el cuerpo va con sangría. Crearla no la ejecuta: welcome() la llama, y entonces se escriben el saludo y la raya.

Entre los paréntesis se pueden poner parámetros: nombres que reciben los valores de la llamada. En serve("latte"), drink vale "latte"; en la siguiente llamada vale "hot chocolate". Así, una sola función sirve para cualquier bebida.

return devuelve un resultado a quien llamó. with_vat(2.50) calcula el precio con el 21 % de IVA y lo devuelve, de modo que la llamada se puede usar dentro de una f-string, guardar en una variable o sumar con otra: with_vat(3.00) + with_vat(1.80).

Una función puede llamar a otras: receipt_line() usa with_vat() para escribir cada línea del tique con el nombre alineado a la izquierda y el precio a la derecha.

Código · main.py

# def creates a function: a named block of code you can reuse.def welcome():    print("Welcome to the Python Cafe!")    print("-" * 27)welcome()# A function can receive a value (a parameter)...def serve(drink):    print(f"One {drink}, coming right up.")serve("latte")serve("hot chocolate")# ...and give back a result with return.def with_vat(price):    return price * 1.21print(f"A 2.50 tea costs {with_vat(2.50):.2f} with VAT.")# The result can be stored and used like any other value.total = with_vat(3.00) + with_vat(1.80)print(f"Coffee and a croissant: {total:.2f}")# A function can call other functions.def receipt_line(drink, price):    print(f"{drink:<14}{with_vat(price):>6.2f}")receipt_line("Cappuccino", 2.80)receipt_line("Orange juice", 3.20)

Salida · python3 main.py

Welcome to the Python Cafe!
---------------------------
One latte, coming right up.
One hot chocolate, coming right up.
A 2.50 tea costs 3.02 with VAT.
Coffee and a croissant: 5.81
Cappuccino      3.39
Orange juice    3.87

Para recordar

  • def nombre(parámetros): crea una función.
  • La función solo se ejecuta cuando se la llama: nombre(...).
  • Los parámetros reciben los valores de la llamada.
  • return devuelve un resultado que se puede guardar o usar.

Ejercicio

Escriba una función to_fahrenheit(celsius) que devuelva celsius * 9 / 5 + 32 y úsela en un for para convertir 0, 20, 37 y 100 grados.