Python: 如何在后续减法中使用 divmod 中的值
Python: How to use values from divmod in a subsequent subtraction
如何在不面对的情况下将 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 件商品,则每五件商品中有一件是免费的。然后函数应该 return 总成本。此外,仅授予两种折扣类型中的一种,以对客户更好的方式为准。
divmod
returns 元组 (d, m)
其中 d
是除法的整数结果 (x // y
) 而 m
是余数(x % y
),使用索引来获取你想要的两者(div
或 mod
):
deducted_quantity = divmod(quantity, 5)[0]
# or:
# deducted_quantity = divmod(quantity, 5)[1]
或者如果您需要两者,请使用解包为每个值使用一个变量:
the_div, the_mod = divmod(quantity, 5)
如何在不面对的情况下将 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 件商品,则每五件商品中有一件是免费的。然后函数应该 return 总成本。此外,仅授予两种折扣类型中的一种,以对客户更好的方式为准。
divmod
returns 元组 (d, m)
其中 d
是除法的整数结果 (x // y
) 而 m
是余数(x % y
),使用索引来获取你想要的两者(div
或 mod
):
deducted_quantity = divmod(quantity, 5)[0]
# or:
# deducted_quantity = divmod(quantity, 5)[1]
或者如果您需要两者,请使用解包为每个值使用一个变量:
the_div, the_mod = divmod(quantity, 5)