Python: как использовать значения из divmod в последующем вычитании - PullRequest
0 голосов
/ 07 марта 2019

как мне включить результат деления 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 Ответ

1 голос
/ 07 марта 2019

divmod возвращает кортеж (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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...