Python,搜索列表列表并给出下一个值
我正在创建一个程序,给定佣金百分比和发票,它将查找给定的发票,查找该发票的值,并根据输入的百分比计算佣金。当我们输入Python,搜索列表列表并给出下一个值,python,list,element,Python,List,Element,我正在创建一个程序,给定佣金百分比和发票,它将查找给定的发票,查找该发票的值,并根据输入的百分比计算佣金。当我们输入“calculate”时,它会将所有佣金相加,并给出佣金总额 我无法识别列表中的输入。一旦我这样做了,我必须做什么才能得到发票的价值 数据库=[发票、发票金额、发票保证金] 这就是我目前所拥有的 data_base = [["f1",2000,.24],["f2",150000,.32],["f3",345000,.32]] comission_percentage = int(i
“calculate”
时,它会将所有佣金相加,并给出佣金总额
我无法识别列表中的输入。一旦我这样做了,我必须做什么才能得到发票的价值
数据库=[发票、发票金额、发票保证金]
这就是我目前所拥有的
data_base = [["f1",2000,.24],["f2",150000,.32],["f3",345000,.32]]
comission_percentage = int(input("Comision Percentage: "))
invoice = input("Enter an invoice: ")
total_comision = 0
while invoice != "calculate" :
while invoice in data_base:
invoice_ = data_base.index(invoice)+1 #Gives me the position of invoice
invoice_amount = data_base[p_factura] #Give me the value os the invoice
comission = ((margen_comisionar/100)* monto_factura) #calculatecomission
total_comision = comission + total_comission
invoice = input("Enter an invoice: ")
print("The amount to comission is: " + str(total_comission))
您最好将从计算中找到正确发票的任务分开 目前,您的代码根本不会运行,因为您使用的变量的值尚未定义。因为您根本不需要更改发票,所以只需返回所需的值即可。下面是一个示例,如果找不到您要的发票,它将返回一张“空”发票:
def find_invoice(s):
for i_num, amount, rate in data_base:
if i_num == s:
return i_num, amount, rate
return(None, 0.0, 0,0)
然后,逻辑的主要部分可以是:
total_commission = 0.0
while invoice != "calculate":
i, amt, rate = find_invoice(invoice)
if i:
total_commission += amt*comission_percentage/100.0
invoice = input("Enter an invoice: ")
另外,要注意变量名。你的拼写必须准确!不过,对于一个显然是初学者的人来说,这不是一件坏事。你最好将从计算中找到正确发票的任务分开 目前,您的代码根本不会运行,因为您使用的变量的值尚未定义。因为您根本不需要更改发票,所以只需返回所需的值即可。下面是一个示例,如果找不到您要的发票,它将返回一张“空”发票:
def find_invoice(s):
for i_num, amount, rate in data_base:
if i_num == s:
return i_num, amount, rate
return(None, 0.0, 0,0)
然后,逻辑的主要部分可以是:
total_commission = 0.0
while invoice != "calculate":
i, amt, rate = find_invoice(invoice)
if i:
total_commission += amt*comission_percentage/100.0
invoice = input("Enter an invoice: ")
另外,要注意变量名。你的拼写必须准确!不过,对于一个显然是初学者的人来说,这并非坏事。你的“数据库”似乎是一个列表列表。我假设来自用户的输入应该与列表的第一部分匹配 因此:
data_base = [["f1",2000,.24],["f2",150000,.32],["f3",345000,.32]]
如果用户输入f1
,您希望它与[“f1”,2000,.24]
匹配
在这种情况下,您的内部while
循环将不起作用,因为“f1”
不在[[“f1”,2000.24],“f2”,150000.32],“f3”,345000.32]
您需要检查列表中每个元素的第一个元素是否与您的输入匹配
for invoice_info in database:
if invoice in invoice_info:
# found it!
<do your invoice commission calculations here>
那你就可以了
if invoice in data_base:
found_invoice = data_base[invoice]
total_commission += found_invoice['invoice_amount'] * commission_percentage / 100
您的“数据库”似乎是一个列表列表。我假设来自用户的输入应该与列表的第一部分匹配 因此:
data_base = [["f1",2000,.24],["f2",150000,.32],["f3",345000,.32]]
如果用户输入f1
,您希望它与[“f1”,2000,.24]
匹配
在这种情况下,您的内部while
循环将不起作用,因为“f1”
不在[[“f1”,2000.24],“f2”,150000.32],“f3”,345000.32]
您需要检查列表中每个元素的第一个元素是否与您的输入匹配
for invoice_info in database:
if invoice in invoice_info:
# found it!
<do your invoice commission calculations here>
那你就可以了
if invoice in data_base:
found_invoice = data_base[invoice]
total_commission += found_invoice['invoice_amount'] * commission_percentage / 100
你应该试试这个代码。检查名称和缩进
total = 0
invoice = "calculate"
while invoice!='calculate'
for item in data_base:
total = total + item[1]*comission_percentage/100
invoice = input("Enter invoice: ")
你应该试试这个代码。检查名称和缩进
total = 0
invoice = "calculate"
while invoice!='calculate'
for item in data_base:
total = total + item[1]*comission_percentage/100
invoice = input("Enter invoice: ")
你面临什么问题?正在从列表中获取数据?您应该尝试此代码。检查名称和缩进总数=0 invoice=“calculate”while invoice!='为数据库中的项目计算:总计=总计+项目[1]*佣金百分比/100发票=输入(“输入发票:”)您面临什么问题?正在从列表中获取数据?您应该尝试此代码。检查名称和缩进总数=0 invoice=“calculate”while invoice!='为数据库中的项目计算:总计=总计+项目[1]*佣金百分比/100发票=输入(“输入发票:”)确定。该程序的目的是能够从数据库导入。如果我那样做的话。这些信息在python中是什么样子的?我真的说不出会是什么样子。python中有很多与数据库接口的方法,其中许多方法的操作方式不同。该程序的目的是能够从数据库导入。如果我那样做的话。这些信息在python中是什么样子的?我真的说不出会是什么样子。python中有很多与数据库接口的方法,其中许多方法的操作方式不同。我明白了。如果搜索不在数据库中的值,则会出现错误。如果没有包含,它应该要求我提供另一个输入。如果我在def函数中声明,当不在数据中时,请重新询问,但我不能用calculateOk结束程序。我明白了。如果搜索不在数据库中的值,则会出现错误。如果不包括,它应该要求我提供另一个输入。如果我在def函数中声明,当不在数据中时,请重新询问,但我不能用calculate结束程序