TypeError no compatible Operando tipo(s) de %:Flotador y NoneType
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()
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.