# ============================================================
# CALCULADORA DE IRPF (Impuesto sobre la Renta de las Personas Físicas)
# ============================================================
# El IRPF es un porcentaje que se descuenta del sueldo como impuesto.
# Cuanto más ganas, mayor es el porcentaje que pagas.
# ============================================================
# --- DEFINICIÓN DE LA FUNCIÓN ---
# Una función es un bloque de código reutilizable al que le damos un nombre.
# Así no tenemos que repetir el mismo código cada vez que lo necesitemos.
#
# "def" indica que estamos definiendo (creando) una función.
# "calculo_irpf" es el nombre que le damos a la función.
# "(sueldo)" es el parámetro: un valor que la función recibe para trabajar con él.
# Cada vez que llamemos a la función, le pasaremos un sueldo diferente.
def calculo_irpf(sueldo):
# La función comprueba en qué tramo está el sueldo
# y devuelve el porcentaje de IRPF correspondiente.
# "return" significa "devuelve este resultado al código que me llamó".
if sueldo <= 1000:
# Si el sueldo es 1000€ o menos → 9% de IRPF
# En Python, 0.09 equivale al 9% (9 dividido entre 100)
return 0.09
elif sueldo <= 5000:
# Si el sueldo está entre 1001€ y 5000€ → 12% de IRPF
# "elif" significa "si lo anterior no se cumplió, comprueba esto otro"
return 0.12
else:
# Si el sueldo supera los 5000€ → 15% de IRPF
# "else" significa "en cualquier otro caso"
return 0.15
# ============================================================
# --- EJEMPLOS DE USO DE LA FUNCIÓN ---
# ============================================================
# EJEMPLO 1: Mostrar directamente el porcentaje de IRPF para 1000€
# Llamamos a la función con sueldo=1000 e imprimimos lo que devuelve.
# Resultado esperado: 0.09 (es decir, el 9%)
print(calculo_irpf(1000))
# EJEMPLO 2: Calcular la cantidad en euros que se paga de IRPF
# Primero obtenemos el porcentaje para 4000€ (será 0.12, el 12%)
# Luego multiplicamos ese porcentaje por el sueldo para saber cuántos euros son.
# 4000 * 0.12 = 480€ de impuesto
# Guardamos el resultado en la variable "irpf" para poder imprimirla después.
irpf = calculo_irpf(4000) * 4000
print(irpf)
# EJEMPLO 3: Calcular el sueldo NETO (lo que realmente cobras)
# Sueldo neto = sueldo bruto - lo que pagas de IRPF
# Para un sueldo de 10000€: 10000 - (0.15 * 10000) = 10000 - 1500 = 8500€
#
# Usamos una f-string para mostrar el resultado con texto.
# Las f-strings empiezan con la letra f antes de las comillas: f"..."
# Todo lo que va dentro de llaves {} se calcula y se muestra como número.
print(f"Sueldo bruto: {10000 - calculo_irpf(10000) * 10000}")
# ============================================================
# --- CÁLCULO PARA UN EMPLEADO CONCRETO ---
# ============================================================
# Guardamos el nombre y el sueldo en variables para trabajar con ellos
empleado = "Ana"
sueldo = 3000
# Calculamos el porcentaje de IRPF que le corresponde a Ana (será 0.12)
irpf = calculo_irpf(sueldo)
# Calculamos su sueldo neto y lo mostramos con una f-string
# sueldo - sueldo * irpf = 3000 - 3000 * 0.12 = 3000 - 360 = 2640€
print(f"El empleado {empleado} tiene un sueldo de {sueldo} y el sueldo neto es {sueldo - sueldo * irpf}")
# ============================================================
# --- CÁLCULO PARA VARIOS EMPLEADOS CON UN BUCLE ---
# ============================================================
# En lugar de repetir el código para cada persona, usamos listas y un bucle.
# Una lista es una colección de valores entre corchetes [], separados por comas.
# Aquí guardamos los nombres de los empleados en orden.
empleados = ["Ana", "Eva", "Iu", "Pep"]
# Otra lista con los sueldos, en el mismo orden que los nombres.
# empleados[0]="Ana" corresponde a sueldos[0]=3000, etc.
sueldos = [3000, 18000, 900, 4000]
# "for" crea un bucle: repite el bloque de código varias veces.
# "range(len(empleados))" genera los números 0, 1, 2, 3
# - len(empleados) cuenta cuántos elementos hay en la lista (4 en este caso)
# - range(4) produce la secuencia: 0, 1, 2, 3
# En cada vuelta del bucle, "i" toma uno de esos valores (0, 1, 2, 3)
# y lo usamos como índice para acceder al empleado y sueldo correspondiente.
for i in range(len(empleados)):
# empleados[i] → el nombre del empleado en la posición i
# sueldos[i] → el sueldo del empleado en la posición i
# calculo_irpf(sueldos[i]) → el porcentaje de IRPF según su sueldo
# sueldos[i] - sueldos[i] * calculo_irpf(sueldos[i]) → su sueldo neto
print(f"El empleado {empleados[i]} tiene un sueldo de {sueldos[i]} "
f"y el sueldo neto es {sueldos[i] - sueldos[i] * calculo_irpf(sueldos[i])}")
# Resultado del bucle:
# i=0 → Ana, 3000€ → 3000 - 3000 * 0.12 = 2640.0€
# i=1 → Eva, 18000€ → 18000 - 18000 * 0.15 = 15300.0€
# i=2 → Iu, 900€ → 900 - 900 * 0.09 = 819.0€
# i=3 → Pep, 4000€ → 4000 - 4000 * 0.12 = 3520.0€