每当我在我的cheapest_shipping函数中输入一个大于10的值时,都会出现无法排序的类型错误。
我尝试制作单独的变量以传递给函数以计算成本。还尝试了其他比较运算符。
cost = 0
pgs = 125
def gsp(weight):
if weight == 0:
cost = 20
return cost
elif weight <= 2:
cost = (1.5 * weight + 20)
return cost
elif weight > 2 and weight <= 6:
cost = (3 * weight + 20)
return cost
elif weight > 6 and weight <= 10:
cost = (4 * weight + 20)
return cost
elif weight > 10:
cost = (4.75 * weight + 20)
def dsp(weight):
if weight == 0:
cost = 0
return cost
elif weight <= 2:
cost = (4.5 * weight)
return cost
elif weight > 2 and weight <= 6:
cost = (9 * weight)
return cost
elif weight > 6 and weight <= 10:
cost = (12 * weight)
return cost
elif weight > 10:
cost = (14.25 * weight)
def cheapest_shipping(weight):
if gsp(weight) < dsp(weight) and gsp(weight) < pgs:
return "Ground shipping is the cheapest option at $" + str(gsp(weight))
elif dsp(weight) < gsp(weight) and dsp(weight) < pgs:
return "Drone shipping is the cheapest option at $" + str(dsp(weight))
print (cheapest_shipping(11))
该功能使用我的陆运价格功能和无人机运价功能以及高级陆运成本,并输入重量,并应返回最便宜的运输选项。直到输入超过10才起作用。
答案 0 :(得分:0)
在最后一个return cost
语句中缺少elif
。这可能就是你想要的
cost = 0
pgs = 125
def gsp(weight):
if weight == 0:
cost = 20
return cost
elif weight <= 2:
cost = (1.5 * weight + 20)
return cost
elif weight > 2 and weight <= 6:
cost = (3 * weight + 20)
return cost
elif weight > 6 and weight <= 10:
cost = (4 * weight + 20)
return cost
elif weight > 10:
cost = (4.75 * weight + 20)
return cost
def dsp(weight):
if weight == 0:
cost = 0
return cost
elif weight <= 2:
cost = (4.5 * weight)
return cost
elif 2 < weight <= 6:
cost = (9 * weight)
return cost
elif 6 < weight <= 10:
cost = (12 * weight)
return cost
elif weight > 10:
cost = (14.25 * weight)
return cost
def cheapest_shipping(weight):
if gsp(weight) < dsp(weight) and gsp(weight) < pgs:
return "Ground shipping is the cheapest option at $" + str(gsp(weight))
elif dsp(weight) < gsp(weight) and dsp(weight) < pgs:
return "Drone shipping is the cheapest option at $" + str(dsp(weight))
print (cheapest_shipping(11))