Проблема даже в том, что калькулятор должен написать ответ, но он неверен на веб-сайте.
Постановка проблемы
Магазин драгоценных камней ARS продает своим клиентам различные виды драгоценных камней.
Напишите программу на Python для расчета суммы счета, подлежащего оплате клиентом, на основе списка драгоценных камней и количества купленных.Любая покупка с общей суммой счета выше 30000 рупий имеет право на скидку 5%.Если какой-либо драгоценный камень, требуемый покупателем, недоступен в магазине, то следует считать, что общая сумма счета равна -1.
Предположим, что количество, требуемое покупателем для любого драгоценного камня, всегда будет больше 0.
Выполняйте сравнение с учетом регистра, где это применимо.
#List of gems available in the store
gems_list=['Amber', 'Aquamarine', 'Opal', 'Topaz']
#Price of gems available in the store. gems_list and price_list have one-to-one correspondence
price_list=[4392, 1342, 8734, 6421]
#List of gems required by the customer
reqd_gems=['Amber', 'Opal', 'Topaz']
#Quantity of gems required by the customer. reqd_gems and reqd_quantity have one-to-one correspondence
reqd_quantity=[2, 1, 3]
bill_amount=calculate_bill_amount(gems_list, price_list, reqd_gems, reqd_quantity)
print(bill_amount)
Я ожидаю, что на выходе получится 36781
Это решение, которое я до сих пор придумал:
def calculate_bill_amount(gems_list, price_list, reqd_gems, reqd_quantity):
bill_amount = 0
for i in range(0, len(reqd_gems)):
if (reqd_gems[i] in gems_list) and reqd_quantity[i] > 0:
for j in range(0, len(gems_list)):
if gems_list[j] == reqd_gems[i]:
price = price_list[j]
break
bill_amount = bill_amount + (price) * reqd_quantity[i]
bill_amount_amt = bill_amount - (5 / 100) * bill_amount
else:
bill_amount = -1
break
return bill_amount