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()
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top