Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在infytq应用程序中解决问题时遇到的问题_Python_List - Fatal编程技术网

Python 在infytq应用程序中解决问题时遇到的问题

Python 在infytq应用程序中解决问题时遇到的问题,python,list,Python,List,问题是,即使是计算器也应该写出答案,但在网站上却是错误的 问题陈述 ARS宝石商店向其客户销售不同种类的宝石 编写一个Python程序,根据宝石列表和购买数量计算客户要支付的账单金额。账单总额超过30000卢比的任何购买均可享受5%的折扣。如果顾客要求的宝石在商店中不可用,则考虑总账单金额为-1。< /P> 假设客户对任何gem的需求量始终大于0 在适用的情况下进行区分大小写的比较 #List of gems available in the store gems_list=['Amber',

问题是,即使是计算器也应该写出答案,但在网站上却是错误的

问题陈述 ARS宝石商店向其客户销售不同种类的宝石

编写一个Python程序,根据宝石列表和购买数量计算客户要支付的账单金额。账单总额超过30000卢比的任何购买均可享受5%的折扣。如果顾客要求的宝石在商店中不可用,则考虑总账单金额为-1。< /P> 假设客户对任何gem的需求量始终大于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计算账单金额清单、价格清单、需求数量、需求数量: 账单金额=0 对于0范围内的i,lenreqd_gems: 如果宝石清单中的宝石需求量[i]和宝石需求量[i]>0: 对于0范围内的j,长度列表: 如果gems_list[j]==reqd_gems[i]: 价格=价目表[j] 打破 账单金额=账单金额+价格*需求数量[i] 票据金额=票据金额-5/100*票据金额 其他: 账单金额=-1 打破 退票金额
我认为将数量与同一块宝石的价格相匹配的最佳方法是根据相应的列表创建两个词典

试试这个:

def计算账单金额清单、价格清单、需求数量、需求数量: price_dict={gems_list[i]:范围内i的price_list[i] reqd_dict={reqd_gems[i]:范围内i的reqd_数量[i]reqd_gems} 尝试: 账单=总价单[gem]*需求单[gem]中的gem的需求单[gem] 除KeyError外: 返回-1 如果账单>30000: 账单=0.95*账单 退票 商店提供的宝石清单 宝石列表=[‘琥珀’、‘海蓝宝石’、‘蛋白石’、‘黄玉’] 商店提供的宝石价格。宝石清单和价格清单有一对一的对应关系 价目表=[439213487346421] 客户要求的宝石清单 所需宝石=[“琥珀”、“蛋白石”、“黄玉”] 客户要求的宝石数量。REQUD_gems和REQUD_数量具有一对一的对应关系 需求数量=[2,1,3] 清单金额=计算清单金额清单、价格清单、需求清单、需求数量 打印账单金额
你到底得到了什么结果?你做了什么调试?并对问题进行了详细的分析。这不是全部代码。我使用的代码'def calculate_bill_amountgems_list,price_list,reqd_gems,reqd_quantity:bill_amount=0表示范围0中的I,lenreqd_gems:if reqd_gems[I]表示范围0中的j,lengems_list:if gems_list[j]==reqd_gems[I]:price=price\u list[j]break bill\u amount=bill\u amount+price*requd\u数量[i]bill\u amount\u amount=bill\u amount-5/100*bill\u amount其他:bill\u amount=-1 break-return bill\u amount`@Rajeshwari我编辑了我的答案,添加了5%折扣和-1规则。现在能用了吗?@RajeshwariNadar你编辑了问题中的输入。。。我编辑了答案以匹配新的输入,它现在起作用了吗?reqd_数量-[10],宝石列表-[‘月光石’、‘蓝宝石’、‘石英’],reqd_宝石-[‘象牙’],价格列表-[349812575467]reqd_数量-[5,8],宝石列表-[‘月光石’、‘蓝宝石’、‘石英’],reqd_宝石-[‘象牙’、‘石英’],价格列表-[349812575467]以下测试显示错误case@RajeshwariNadar我再次编辑,现在有超过30000和-1的5%折扣,如果gem不在库存中,这将给你正确的答案,你在解决方案中只犯了一个错误,那就是折扣线的位置错误。5%折扣后,预期答案应为34941.95
def calculate_bill_amount(gems_list, price_list, reqd_gems,reqd_quantity):
bill_amount=0
#Write your logic here
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]
                bill_amount = bill_amount+(price*reqd_quantity[i])
                break
            
        else:
            bill_amount = -1
            break
if(bill_amount>30000):
    bill_amount = bill_amount - (5/100*bill_amount)
return bill_amount