TypeError nicht unterstützte Operandentypen für %:Float und kein Typ
Frage
tut mir leid, Sie mit einer Noob-Frage zu belästigen, aber ich bin neu in Python.Grundsätzlich ist dies eine Hausaufgabe, bei der ich nicht verstehen kann, woran ich falsch mache.Ich denke, ich habe alles, was ich brauche, aber ich bekomme immer wieder einen typeerror.Jede Hilfe wird geschätzt.Danke!
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()
Lösung
Der print()
funktionsrückgaben None
;sie wollten wahrscheinlich das verschieben %
Betrieb in Funktionsaufruf:
print ("The total shipping cost will be $%.2f" % PricePerPound)
Beachten Sie, dass Ihre if
tests verwenden die bitweisen und Betreiber &
;sie wollten wahrscheinlich verwenden and
verwenden Sie stattdessen boolesche Logik:
elif Weight >= 2 and Weight < 6:
PricePerPound = 2.20
elif Weight >= 6 and Weight < 10:
PricePerPound = 3.70
oder mit Vergleichsverkettung:
elif 2 <= Weight < 6:
PricePerPound = 2.20
elif 6 <= Weight < 10:
PricePerPound = 3.70
Wenn Sie Ihre Tests durchsehen, testen Sie auf Weight >= 2
zu früh;wenn Weight
liegt zwischen 2 und 6, werden Sie mit dem ersten übereinstimmen if
und ignoriere die anderen Aussagen ganz.Ich glaube, du wolltest:
PricePerPound = 1.10
if 2 <= Weight < 6:
PricePerPound = 2.20
elif 6 <= Weight < 10:
PricePerPound = 3.70
elif Weight >= 10:
PricePerPound = 3.8
beispielsweise.der Preis beträgt 1,10, es sei denn, Sie haben ein Paket mit einem Gewicht von 2 oder mehr, wonach der Preis schrittweise steigt.