APRENDE FUNCIONES en PYTHON: def, pass, sintaxis, None, return vs print, argumentos, scope y más

 

¿Qué es una función? 🤔

Una función es un bloque que permite compactar y reutilizar tu código. Puede:

  • Recibir datos

  • Utilizarlos

  • Devolver datos

Una vez creada tu función, puedes llamarla y ejecutar el código que escribiste dentro. Por ejemplo:

  • Hacer varios print que uses a menudo

  • Realizar tareas como calcular el promedio de tus notas

Sintaxis Básica 🎯

python
def nombre_funcion():
    # Tu código aquí
    pass  # Como tu crush, pasa de ti

Desglose:

  • def: Palabra clave para definir la función

  • nombre_funcion: El nombre que le das (¡descriptivo!)

  • (): Donde van los datos (argumentos)

  • :: Dos puntos para terminar la cabecera

  • Indentación: La sangría que organiza tu código (Python usa esto en lugar de llaves)

¡Hagamos que haga algo! 💥

python
def saludar():
    print("Hola")  # Adiós pass, hola acción!

# Llamar a la función
saludar()  # Output: Hola

Pasando Datos - Argumentos 📤

python
def saludar_personalizado(nombre):
    print(f"Hola, {nombre}!")

saludar_personalizado("BitBoss")  # Output: Hola, BitBoss!

Error común: Si defines un argumento, ¡debes pasarlo! Si no, Python te dirá que eres tonto (en términos educados).

Return vs Print - ¡La Gran Diferencia! ⚡

Con print (solo muestra):

python
def mostrar_suma(a, b):
    print(a + b)

resultado = mostrar_suma(2, 3)  # Output: 5
print(resultado)  # Output: None ⚠️

Con return (devuelve valor):

python
def calcular_suma(a, b):
    return a + b

resultado = calcular_suma(2, 3)
print(resultado)  # Output: 5 ✅
print(calcular_suma(1, 2) * 2)  # Output: 6 ✅

None: Es un valor especial (NoneType) que representa "nada". Las funciones sin return explícito devuelven None.

Ejemplo Práctico: Calculando Promedio 📊

python
def calcular_promedio(examen1, examen2, examen3):
    suma = examen1 + examen2 + examen3
    promedio = suma / 3
    return promedio

# Versión compacta:
def calcular_promedio(examen1, examen2, examen3):
    return (examen1 + examen2 + examen3) / 3

mi_promedio = calcular_promedio(8, 7, 9)
print(f"Tu promedio es: {mi_promedio}")

Argumentos con Nombre (Keyword Arguments) 🏷️

python
def resta(a, b):
    return a - b

# Por posición (orden importa):
print(resta(5, 3))  # Output: 2
print(resta(3, 5))  # Output: -2

# Por nombre (¡el orden no importa!):
print(resta(a=5, b=3))  # Output: 2
print(resta(b=3, a=5))  # Output: 2 ✅

Valores por Defecto ⚙️

python
def resta(a=3, b=2):
    return a - b

print(resta())      # Output: 1 (usa valores por defecto)
print(resta(5))     # Output: 3 (5-2)
print(resta(b=1))   # Output: 2 (3-1)

¡Cuidado!: No puedes usar argumentos posicionales después de keyword arguments.

Scope - Alcance de Variables 🎯

Variables Locales (dentro de la función):

python
def mi_funcion():
    variable_local = "Solo existo aquí dentro"
    print(variable_local)

mi_funcion()
# print(variable_local)  # ¡ERROR! No existe fuera

Variables Globales:

python
variable_global = "Soy global"

def mostrar_global():
    print(variable_global)  # Puedo acceder

mostrar_global()  # Output: Soy global

Modificando variables globales:

python
contador = 0

def incrementar():
    global contador  # ¡Necesario para modificar!
    contador += 1

incrementar()
print(contador)  # Output: 1

Return Interrumpe la Ejecución 🛑

python
def funcion_interrumpida():
    print("Este sí se ejecuta")
    return
    print("Este NO se ejecuta")  # ¡Muerto!

funcion_interrumpida()

Resumen Final 🎓

Concepto¿Qué es?Ejemplo
defDefine una funcióndef mi_funcion():
ArgumentosDatos que recibe(a, b, c)
returnDevuelve un valorreturn resultado
printMuestra en pantallaprint("Hola")
NoneValor "vacío"Valor por defecto
ScopeAlcance de variablesLocales vs Globales
Keyword ArgsArgumentos con nombrefuncion(a=1, b=2)

¡Practica! 🚀

Crea una función que convierta Celsius a Fahrenheit:

python
def celsius_a_fahrenheit(celsius):
    # Fórmula: (C × 9/5) + 32
    return (celsius * 9/5) + 32

print(celsius_a_fahrenheit(0))    # Debe dar 32
print(celsius_a_fahrenheit(100))  # Debe dar 212

¡Recuerda! La indentación es crucial en Python. Usa 4 espacios por nivel (aunque las tabulaciones técnicamente funcionan, los espacios son la convención).

¿Prefieres espacios o tabulaciones? ¡Déjamelo saber en los comentarios! 👇

¡Y no olvides suscribirte para más tutoriales que hasta los más "lentos" pueden entender! 🔔


Tutorial: Aprende Funciones en Python para Principiantes

¿Qué es una función?

Una función es un bloque de código que realiza una tarea específica y que puedes reutilizar en tu programa. Imagínalo como una receta: defines los pasos una vez y luego puedes usarla muchas veces.

Sintaxis básica de una función

python
def nombre_de_la_funcion():
    # código que realiza la tarea
    print("Hola desde la función")

1. La palabra clave def

Se usa para definir una función:

python
def saludar():
    print("¡Hola! Bienvenido/a")

2. La palabra clave pass

Se usa cuando quieres crear una función pero aún no has decidido qué hará:

python
def funcion_futura():
    pass  # No hace nada por ahora

# Esto evita errores mientras trabajas en tu código

3. El valor None

Es un valor especial que representa "nada" o "vacío". Las funciones que no retornan nada explícitamente devuelven None:

python
def funcion_sin_return():
    print("Hola")
    
resultado = funcion_sin_return()
print(resultado)  # Output: None

4. return vs print

print() - Muestra información en pantalla

python
def mostrar_suma(a, b):
    print(a + b)  # Solo muestra el resultado

mostrar_suma(5, 3)  # Output: 8

return - Devuelve un valor para usarlo después

python
def calcular_suma(a, b):
    return a + b  # Devuelve el resultado

resultado = calcular_suma(5, 3)
print(resultado)  # Output: 8
print(calcular_suma(2, 4) * 2)  # Output: 12

Diferencia claveprint solo muestra, return devuelve un valor que puedes usar.

5. Argumentos (parámetros)

Son valores que le pasas a la función:

Argumentos posicionales

python
def presentar(nombre, edad):
    print(f"Hola, me llamo {nombre} y tengo {edad} años")

presentar("Ana", 25)  # Output: Hola, me llamo Ana y tengo 25 años

Argumentos con valores por defecto

python
def saludar(nombre="amigo/a"):
    print(f"¡Hola, {nombre}!")

saludar()           # Output: ¡Hola, amigo/a!
saludar("Carlos")   # Output: ¡Hola, Carlos!

Argumentos con nombre (keyword arguments)

python
def describir_persona(nombre, edad, ciudad):
    print(f"{nombre}, {edad} años, vive en {ciudad}")

describir_persona(edad=25, ciudad="Madrid", nombre="Laura")

6. Scope (alcance de variables)

Variables locales (dentro de la función)

python
def mi_funcion():
    variable_local = "Solo existe aquí dentro"
    print(variable_local)

mi_funcion()
# print(variable_local)  # Esto daría ERROR

Variables globales (fuera de la función)

python
variable_global = "Soy global"

def mostrar_global():
    print(variable_global)  # Puedo acceder

mostrar_global()  # Output: Soy global

Modificar variables globales (con global)

python
contador = 0

def incrementar():
    global contador  # Necesario para modificar
    contador += 1

incrementar()
print(contador)  # Output: 1

Ejemplo completo práctico

python
# Función para calcular áreas
def calcular_area_rectangulo(base, altura=1):
    """Calcula el área de un rectángulo"""
    area = base * altura
    return area

# Función para mostrar resultados
def mostrar_resultado(figura, area):
    print(f"El área del {figura} es: {area}")

# Usamos las funciones
area1 = calcular_area_rectangulo(5, 3)
area2 = calcular_area_rectangulo(4)  # Usa altura por defecto (1)

mostrar_resultado("rectángulo grande", area1)
mostrar_resultado("rectángulo pequeño", area2)

# También podemos anidar llamadas
mostrar_resultado("cuadrado", calcular_area_rectangulo(6, 6))

Buenas prácticas

  1. Nombres descriptivoscalcular_promedio() en lugar de funcion1()

  2. Comentarios/documentación: Usa """comentarios""" para explicar qué hace tu función

  3. Una función, una tarea: Cada función debe hacer solo una cosa específica

  4. Evitar funciones demasiado largas: Si es muy larga, considera dividirla

Ejercicio práctico

Crea una función que convierta grados Celsius a Fahrenheit:

python
def celsius_a_fahrenheit(celsius):
    # Fórmula: (C × 9/5) + 32
    fahrenheit = (celsius * 9/5) + 32
    return fahrenheit

# Prueba tu función
print(celsius_a_fahrenheit(0))    # Debe dar 32
print(celsius_a_fahrenheit(100))  # Debe dar 212

¡Ahora tienes las bases para usar funciones en Python! Practica creando tus propias funciones para resolver problemas específicos

Comentarios

Entradas populares de este blog

¿Qué es un Closure?

4 tipos de colecciones de datos más

Calculadora de edad