Pregunta

perdona que te moleste con una pregunta de noob, pero soy nuevo en Python.Básicamente, esta es una tarea que no entiendo lo que estoy haciendo mal en.Creo que tengo todo lo que necesito pero me sale un typeerror.Cualquier ayuda es muy apreciada.Gracias!

def Main():
    Weight = float(input ("How much does your package weigh? :"))
    CalcShipping(Weight)

def CalcShipping(Weight):

    if Weight>=2:
        PricePerPound=1.10

    elif Weight>=2 & Weight<6:
        PricePerPound=2.20

    elif Weight>=6 & Weight<10:
        PricePerPound=float(3.70)

    else:
        PricePerPound=3.8

    print ("The total shipping cost will be $%.2f") % (PricePerPound) 


Main()
¿Fue útil?

Solución

El print() la función devuelve None;probablemente quería mover el % la operación en la llamada a la función:

print ("The total shipping cost will be $%.2f" % PricePerPound) 

Tenga en cuenta que su if las pruebas son el uso de la bit a bit y operador &;probablemente quería usar and en su lugar, utilizando la lógica booleana:

elif Weight >= 2 and  Weight < 6:
    PricePerPound = 2.20

elif Weight >= 6 and Weight < 10:
    PricePerPound = 3.70

o bien, utilizar la comparación en cadena:

elif 2 <= Weight < 6:
    PricePerPound = 2.20

elif 6 <= Weight < 10:
    PricePerPound = 3.70

Mirando por encima de sus pruebas, para hacer la prueba de Weight >= 2 demasiado temprano;si Weight es entre 2 y 6 que va a coincidir con la primera if e ignorar las otras declaraciones por completo.Creo que quería:

PricePerPound = 1.10

if 2 <= Weight < 6:
    PricePerPound = 2.20

elif 6 <= Weight < 10:
    PricePerPound = 3.70

elif Weight >= 10:
    PricePerPound = 3.8

por ejemplo,el precio es de 1.10, a menos que usted tiene un paquete de pesaje 2 o más, después de que el precio sube progresivamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top