Funciones

¿Qué es una función?

Imagina que tienes una receta de cocina. Cada vez que quieres hacer ese plato, sigues los mismos pasos. En programación, una función es como esa receta: es un conjunto de instrucciones que se siguen para realizar una tarea específica.

Ejemplo:

Python

def saludar(nombre):
  print("Hola,", nombre + "!")

En este ejemplo:

  • def indica que estamos definiendo una función.
  • saludar es el nombre que le hemos dado a nuestra función.
  • nombre es un parámetro, es decir, un valor que la función espera recibir cuando la llamemos.
  • print("Hola,", nombre + "!") es el cuerpo de la función, las instrucciones que se ejecutarán cuando la llamemos.

¿Por qué usar funciones?

  • Organización: Dividen el código en partes más pequeñas y fáciles de entender.
  • Reutilización: Evitan repetir el mismo código varias veces.
  • Modularidad: Permiten crear programas más estructurados y fáciles de modificar.

Partes de una función:

  • Nombre: Identifica la función. Debe ser descriptivo y seguir las reglas de nomenclatura de Python.
  • Parámetros: Valores que se pasan a la función cuando se llama.
  • Cuerpo: Conjunto de instrucciones que se ejecutan dentro de la función.
  • Valor de retorno: Valor que la función devuelve al terminar su ejecución (opcional).

Llamar a una función:

Una vez definida, una función se llama por su nombre, seguido de paréntesis y los argumentos necesarios.

Python

saludar("Ana")  # Esto imprimirá "Hola, Ana!"

Ejemplos prácticos:

  1. Calculadora simple:
def sumar(a, b):
    return a + b

resultado = sumar(5, 3)
print(resultado)  # Imprimirá 8

2. Generador de contraseñas:

import random
import string

def generar_contrasena(longitud):
    caracteres = string.ascii_letters + string.digits + string.punctuation
    contrasena = ''.join(random.choice(caracteres) for i in range(longitud))
    return contrasena   


mi_contrasena = generar_contrasena(12)
print(mi_contrasena)

3. Juego adivina el número:

import random

def adivinar_numero():
    numero_secreto = random.randint(1, 100)
    intentos = 0
    while True:
        intentos += 1
        intento_usuario = int(input("Adivina el número (1-100): "))
        if intento_usuario == numero_secreto:
            print(f"¡Felicidades! Adivinaste en {intentos} intentos.")
            break
        elif intento_usuario < numero_secreto:
            print("El número es más grande.")
        else:
            print("El número es más pequeño.")

adivinar_numero()