Tomar unas vacaciones en Python y me dice que la tasa de descuento está mal


#1

def costoHotel(dias):
return dias * 140
costoHotel(3)
def costoViajeAvion(ciudad):
if ciudad == "Charlotte":
costoViajeAvion = 183
print costoViajeAvion
return costoViajeAvion
elif ciudad == "Tampa":
costoViajeAvion = 220
print costoViajeAvion
return costoViajeAvion
elif ciudad == "Pittsburgh":
costoViajeAvion = 222
print costoViajeAvion
return costoViajeAvion
elif ciudad == "Los Angeles":
costoViajeAvion = 475
print costoViajeAvion
return costoViajeAvion
else:
return "No es ninguna de las opciones"
costoViajeAvion("Charlotte")
def costoAlquilarAuto(dias):
if dias >= 3 and dias <= 6:
costoAlquilarAuto = dias * 40 - 20
print costoAlquilarAuto
return costoAlquilarAuto
elif dias >= 7:
costoAlquilarAuto = dias * 40 - 50
print costoAlquilarAuto
return costoAlquilarAuto
else:
print dias
costoAlquilarAuto(8)


#2

We shouldn't be doing any printing in our functions. Just compute and return a value.

No debemos hacer ninguna impresión en nuestras funciones. Sólo calcular y devolver un valor.

and,

Neither function needs (or is asked for) an else statement. Let Python return None.

Ni función de las necesidades (o se le pide) una declaración else. Deje que volver Python None.

Ideally, we should be sticking as close to the instructions as possible and not create new variables (or print statements).

Idealmente, deberíamos haber quedado pegadas lo más cercano a las instrucciones como sea posible y no crear nuevas variables (o declaraciones de impresión).

This is how to keep it simple, and to the point...

Esta es la forma que sea sencillo, y al punto ...

Consider a look-up table for this function:

Considere una tabla de consulta para esta función:

def costoViajeAvion(ciudad):
    tarifas = {
        "Charlotte": 193,
        "Tampa": 220,
        "Pittsburgh": 222,
        "Los Angeles": 475
    }
    return tarifas[ciudad] or "No disponible"

or at least a simple if-elif statement. Variable is optional, you can simply return a value in each branch.

o al menos un simple instrucción if-elif. Variable es opcional, sólo tiene que devolver un valor en cada rama.

Now the last one,

Ahora el último,

def costoAlquilarAuto(dias):
    costo = dias * 40
    if dias >= 7:
        costo -= 50
    elif dias >=3:
        costo -= 20
    return costo

Work toward a D.R.Y. (Do not Repeat Yourself) program design that does not repeat code patterns or expressions.

Trabajar hacia una D.R.Y. (No te repitas a ti mismo) el diseño de programas que no se repite patrones de código o expresiónes.


#3

Muchas gracias :smiley: