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?
答案 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: