TypeError неподдерживаемый тип операнда для %:Плавающий и NoneType
Вопрос
извините, что беспокою вас нубским вопросом, но я новичок в Python.По сути, это домашнее задание, и я не могу понять, что делаю не так.Я думаю, что у меня есть все, что мне нужно, но я продолжаю получать ошибку типа.Любая помощь приветствуется.Спасибо!
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()
Решение
А print()
функция возвращает None
;вы, вероятно, хотели переместить %
операция в вызов функции:
print ("The total shipping cost will be $%.2f" % PricePerPound)
Обратите внимание, что ваш if
тесты используют побитовый и оператор &
;вы, вероятно, хотели использовать and
вместо этого, используя логическую логику:
elif Weight >= 2 and Weight < 6:
PricePerPound = 2.20
elif Weight >= 6 and Weight < 10:
PricePerPound = 3.70
или, используя цепочку сравнения:
elif 2 <= Weight < 6:
PricePerPound = 2.20
elif 6 <= Weight < 10:
PricePerPound = 3.70
Просматривая свои тесты, вы проверяете Weight >= 2
слишком рано;если Weight
между 2 и 6, вы соответствуете первому if
и вообще игнорировать остальные утверждения.Я думаю, вы хотели:
PricePerPound = 1.10
if 2 <= Weight < 6:
PricePerPound = 2.20
elif 6 <= Weight < 10:
PricePerPound = 3.70
elif Weight >= 10:
PricePerPound = 3.8
напримерцена 1,10, если только у вас нет посылки весом 2 и более, после чего цена постепенно увеличивается.