我如何将divmod除法的结果包括在不需面对的简单减法中: TypeError:-:'int'和'tuple'不受支持的操作数类型?
这是我的代码(用Python编写):
def discount(price, quantity):
if (price > 100):
discounted_price = price*0.9
else:
discounted_price = price
if (quantity > 10):
deducted_quantity = divmod(quantity, 5)
discounted_quantity = quantity - deducted_quantity
else:
discounted_quantity = quantity
#Compute which discount yields a better outcome
if (discounted_price*quantity < price*discounted_quantity):
return(discounted_price*quantity)
else:
return(price*discounted_quantity)
由于我是一个初学者,而且找不到合适的解决方案,因此我们非常感谢您的帮助。
仅供参考,其基本任务是: 编写一个函数discount(),该函数接受(位置)参数价格和数量,并为客户订单实现折扣方案,如下所示。如果价格超过100美元,我们将给予10%的相对折扣。如果客户订购的商品超过10件,则每五件中的一件免费。然后,该函数应返回总成本。此外,仅授予两种折扣类型之一,以哪种对客户更好。
答案 0 :(得分:1)
divmod
返回一个元组(d, m)
,其中d
是除法(x // y
)的整数结果,m
是余数({{1} }),使用索引获取两者(x % y
或div
)中想要的东西:
mod
或者,如果您同时需要两者,则可以通过拆包为每个值使用一个变量:
deducted_quantity = divmod(quantity, 5)[0]
# or:
# deducted_quantity = divmod(quantity, 5)[1]