Python:如何在后续减法中使用divmod中的值

时间:2019-03-07 15:13:40

标签: python typeerror divmod

我如何将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件,则每五件中的一件免费。然后,该函数应返回总成本。此外,仅授予两种折扣类型之一,以哪种对客户更好。

Error in full length

1 个答案:

答案 0 :(得分:1)

divmod返回一个元组(d, m),其中d是除法(x // y)的整数结果,m是余数({{1} }),使用索引获取两者(x % ydiv)中想要的东西:

mod

或者,如果您同时需要两者,则可以通过拆包为每个值使用一个变量:

deducted_quantity = divmod(quantity, 5)[0]
# or:
# deducted_quantity = divmod(quantity, 5)[1]