【问题标题】:How to calculate shipping fee from tuples in Python?如何从 Python 中的元组计算运费?
【发布时间】:2021-08-26 14:49:38
【问题描述】:

我希望以便士 (p) 为单位退还每笔订单的运费。我们收取 50 英镑(5000 便士)的固定费用,外加每 100 磅 20 英镑(2000 便士)的费用(超过 100 磅的重量忽略不计)。

订购的商品有 4 个组成部分:名称、数量、单价(以便士为单位)、单位重量(以磅为单位)

ORDER_SAMPLE_1 = {("lamp", 2, 2399, 2), ("chair", 4, 3199, 10), ("table", 1, 5599, 85)}
ORDER_SAMPLE_2 = {("sofa", 1, 18399, 140), ("bookshelf", 2, 4799, 40)}


def delivery_charges(order):
    E.g., delivery_charges({("desk", 1, 11999, 160)}) is 7000 (pence)
    E.g., delivery_charges({("desk", 2, 11999, 160)}) is 11000 (pence)
    E.g., delivery_charges({("lamp", 1, 2399, 2)}) is 5000 (pence)
    E.g., delivery_charges({("lamp", 50, 2399, 2)}) is 7000 (pence)

for 循环或 elif 是最好的方法吗?

【问题讨论】:

  • 你是如何从("desk", 1, 11999, 160) 计算7000 的?
  • 还有("lamp", 2, 2399, 2)中的数字是什么意思
  • 订购的商品有四个组成部分: - 名称 - 数量(购买的此类商品的数量) - 单价(以便士为单位) - 单位重量(以磅为单位)

标签: python for-loop tuples calculation


【解决方案1】:

我假设 5000 便士是整个订单的基本费用,而不是其中的每件商品。所以这里有一种方法可以做到这一点,

  • 您可以遍历订单中的所有项目。
  • 计算每件商品的总重量,然后通过将总重量除以 100 再乘以 2000 来计算 extra_charges。
  • 将此添加到总费用中。循环完成迭代后返回总费用。
def delivery_charges(order):
  total_charges = 5000
  for item in order:
    total_item_weight = item[1] * item[3]
    extra_charges = (total_item_weight // 100) * (2000)
    total_charges += extra_charges   
  return total_charges

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多