Soluciones ejercicios

# Cread una función a la que le pasamos una cantidad y nos devuelve el PVP
# siguiendo las siguientes reglas
# Si el precio es <1000 No hay descuento
# Está entre 1000 y <3000 5% de descuento
# Es 3000 o más 10% de descuento
# devuelvo el importe, no el descuento

def getPVP(importe):
    if importe < 1000:
        return importe
    if importe >= 1000 and importe < 3000:
        return importe - importe * 5 / 100  # importe * 0.95
    if importe >= 3000:
        return importe * 0.9


def getPVP2(importe):
    if importe < 1000:
        return importe
    elif importe < 3000:
        return importe - importe * 5 / 100  # importe * 0.95
    else:
        return importe * 0.9


def getPVP3(importe):
    if importe < 1000:
        return importe
    if importe < 3000:
        return importe - importe * 5 / 100  # importe * 0.95
    return importe * 0.9


print(getPVP(200))
print(getPVP(700))
print(getPVP(1000))
print(getPVP(10000))


def doble(numero):
    return numero * 2


print(doble(8))


# Cread una función obtenerIRPF(departamento, sueldo) que nos devuelva el % de irpf acorde a:
# Si el departamento es 'marketing' 12%
# Si el departamento es 'administracion' y el sueldo es <2500 12%, si es mayor 15%
# Si el departamento es 'contabilidad' tiene los siguientes tramos:
# hasta 3000 10% de 3000 a 5000 12% mas de 5000 15%

def obtenerIRPFOld(departamento, sueldo):
    if departamento == 'marketing':
        return .12
    if departamento == 'administracion' and sueldo < 2500:
        return .12
    if departamento == 'administracion' and sueldo >= 2500:
        return .15
    if departamento == 'contabilidad' and sueldo < 3000:
        return .10
    if departamento == 'contabilidad' and sueldo >= 3000 and sueldo < 5000:
        return .12
    if departamento == 'contabilidad' and sueldo >= 5000:
        return .15


def obtenerIRPFClean(departamento, sueldo):
    if departamento == 'marketing':
        return .12
    if departamento == 'administracion':
        if sueldo < 2500:
            return .12
        else:
            return .15
    if departamento == 'contabilidad':
        if sueldo < 3000:
            return .10
        elif sueldo < 5000:
            return .12
        else:
            return .15

# primero va el and y después el or
def obtenerIRPF(departamento, sueldo):
    if departamento == 'marketing' or (departamento == 'administracion' and sueldo < 2500) or (departamento == 'contabilidad' and sueldo >= 3000 and sueldo < 5000):
        return .12
    if departamento == 'administracion' and sueldo >= 2500 or departamento == 'contabilidad' and sueldo >= 5000:
        return .15
    if departamento == 'contabilidad' and sueldo < 3000:
        return .10


print(obtenerIRPF('marketing', 1000))
print(obtenerIRPF('administracion', 1000))
print(obtenerIRPF('administracion', 3000))
print(obtenerIRPF('contabilidad', 2000))
print(obtenerIRPF('contabilidad', 3500))
print(obtenerIRPF('contabilidad', 6000))

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos