I worked thru the assignment but for some reason, I get Drone as the cheapest shipping method.
Why is Drone Shipping not the cheapest method for a 41.5lb package(Step 7)? There is no limit for the heaviest option in Drone shipping.
# ask the user for the weight of their package # then tell them which method is cheapest and how much it will cost #ground shipping is a flat charge + rate based on weight of package. def ground_shipping(weight): flat_charge = 20.00 ground_rate = 0 if weight <= 2: ground_rate = weight * 1.50 elif weight > 2 and weight <= 6: ground_rate = weight * 3.00 elif weight > 6 and weight <= 10: ground_rate = weight * 4.00 else: ground_rate = 4.75 return weight * ground_rate ground_cost = flat_charge + ground_rate return ground_cost print(ground_shipping(8.4)) #premium ground shipping is a higher flat charge. premium_shipping = 125 #drone shipping (based on weight) is triple the rate of ground shipping. def drone_shipping(weight): drone_rate = 0 if weight <= 2: drone_rate = weight * 4.50 elif weight > 2 and weight <= 6: drone_rate = weight * 9.00 elif weight > 6 and weight <= 10: drone_rate = weight * 12.00 elif weight > 10: drone_rate = 14.75 return drone_rate drone_cost = drone_rate return drone_cost print(drone_shipping(1.5)) # use the 3 functions above def shipping_calc(weight): ground_cost = ground_shipping(weight) premium_cost = premium_shipping drone_cost = drone_shipping(weight) if ground_cost < premium_cost and ground_cost < drone_cost: method = "Ground" cost = ground_cost elif premium_cost < ground_cost and premium_cost < drone_cost: method = "Premium" cost = premium_cost elif drone_cost < ground_cost and drone_cost < premium_cost: method = "Drone" cost = drone_cost #print the following: print( "The cheapest method is " + method + ". the total is $" + str(cost) + ".") # shipping method id the cheapest #cost of shipping of said weight using mentioned method. shipping_calc(10) shipping_calc(4.8) shipping_calc(41.5)