如何编制一个以dict为输入输出银行净金额的程序?

2024-04-25 19:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个程序,在输入和输出的净金额在银行帐户。在

我尝试了以下代码,但输出错误,我无法找出原因:

netAmount = 0
bankDict = {'D':300,'D':300,'W':200,'D':100}
operations = bankDict.keys()
amount = bankDict.values()
for i in range(len(operations)):
    if operations[i] == 'D': netAmount += amount[i]
    elif operations[i] == 'W': netAmount -= amount[i]
else: pass
print netAmount
# OUTPUT: -100

输入不一定必须是dict


Tags: 代码in程序for错误range原因keys
3条回答

字典不会为一个键存储两个不同的条目。因此,当您使用键"D"创建包含多个条目的{}时,它只存储最后一个:

In [149]: bankDict = {'D':300,'D':300,'W':200,'D':100}

In [150]: bankDict
Out[150]: {'D': 100, 'W': 200}

您可能希望事务是一个列表:

^{pr2}$

您甚至可以将事务从字典中单独提取到类中。在

你还可以把字典传过来,只要把它改成

bank_dict = {'D':[300, 300, 100],
             'W':[200]
            }

然后,您将使用给定键的每个值列表的总和来调整帐户余额。在

我只记得我以前问过一个关于机器人位置的类似问题。以下代码现在起作用:

netAmount = 0
operations = ['D','D','W','D']
amount = [300,300,200,100]
i = 0

while i < (len(operations)):
    if operations[i] == 'D': netAmount += amount[i]
    elif operations[i] == 'W': netAmount -= amount[i]
    else: pass
    i += 1

相关问题 更多 >