You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python基于订单元组计算配送运费?

配送费计算方案选择解答

结论

最优方案为for循环遍历计算,elif分支判断完全不适用该场景。

原因说明

  • 订单包含的商品种类、单个商品的购买数量都是动态可变的,不存在固定的分支判断条件,你不可能穷举所有可能的商品组合、重量组合来写elif分支,强行写分支会导致代码完全不可维护,也无法覆盖所有情况。
  • 配送费的计算逻辑天然需要遍历累加所有商品的总重量,才能后续计算费用,遍历是最直接也最高效的实现方式。

计算逻辑梳理

配送费计算可以分为两步:

  1. 遍历订单所有商品,计算总重量:
    总重量 = 所有商品的(购买数量 * 单位重量)之和
  2. 计算总配送费:
    总费用 = 固定费用5000便士 + (总重量 // 100) * 2000便士
    (// 为整数除法,刚好满足“不足100磅的部分不计入额外重量”的要求)

示例代码实现

def delivery_charges(order):
    total_weight = 0
    # 遍历订单所有商品累加总重量
    for name, count, price_per, weight_per in order:
        total_weight += count * weight_per
    # 计算总费用
    extra_charge = (total_weight // 100) * 2000
    return 5000 + extra_charge

代码验证(匹配给出的样例)

  • delivery_charges({("desk", 1, 11999, 160)}) → 总重量160,160//100=1,总费用5000+2000=7000,符合预期
  • delivery_charges({("desk", 2, 11999, 160)}) → 总重量320,320//100=3,总费用5000+3*2000=11000,符合预期
  • delivery_charges({("lamp", 1, 2399, 2)}) → 总重量2,2//100=0,总费用5000,符合预期
  • delivery_charges({("lamp", 50, 2399, 2)}) → 总重量100,100//100=1,总费用7000,符合预期

内容的提问来源于stack exchange,提问作者user16759613

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:24:03