添加每个输入 - Python代码

时间:2014-10-22 17:52:41

标签: python loops

while True:
    credit = 0.00
    coins = input("Please enter 10p, 20p, 50p or £1: ")
    value = ["10p","20p","50p","£1"]
    if coins not in value:
        print("Coins not accepted")
    while coins == ("10p"):
       money = credit + 0.1
       print (money)

到目前为止,这是我的代码。 我想要实现的是:如果用户再次输入10p,则代码将其添加到信用卡中。然后,如果用户再次输入10p,则代码将在信用额度上再添加0.1,使输出为0.2。 我无法弄明白。非常感谢帮助。 如何使我的代码不刷新回到0.00,但每当我输入10p时继续添加0.1?

2 个答案:

答案 0 :(得分:0)

我会改变你接受输入的方式,但这会做你想要的但你会floating point issues

credit = 0.00

money_dict = {"10p":.10,"20p":.20,"50p":.50,"£1":1}
while True:
    coins = raw_input("Please enter 10p, 20p, 50p or £1: ")
    if coins not in money_dict:
        print("Coins not accepted")
        continue
    else:
        credit += money_dict[coins]

答案 1 :(得分:0)

一个问题是,当你为信用增加价值时,你想要印钞票(在循环的每次迭代中都会被归零)。

由于您希望增加资金,我们只需完全取出信用额度,并在每次输入新值时自行添加资金。 (注意我在我的例子中取出了符号)。

简单的解决方案:

money = 0.00

while True:

    coins = raw_input("Please enter 10p, 20p, 50p: ")
    value = ["10p", "20p", "50p"]

    if coins not in value:
        print "Coins not accepted"
    elif coins == "10p":
        money += 0.1
    elif coins == "20p":
        money += 0.2
    elif coins == "50p":
        money += 0.5

    print money

Ran示例:

Please enter 10p, 20p, 50p: 10p
0.1
Please enter 10p, 20p, 50p: 10p
0.2
Please enter 10p, 20p, 50p: 50p
0.7
Please enter 10p, 20p, 50p: 10p
0.8
Please enter 10p, 20p, 50p: