Python:在循环中对变量执行用户定义的添加

时间:2015-12-16 23:11:02

标签: python loops variables addition

这是一个较大的自动售货机的一部分模块"我正在努力。不过,我遇到了一些问题。如果他们没有支付足够的费用(1.75美元),他们会被要求输入额外的金额。我的部分问题是,我不知道应该采取什么操作来改变循环内部的不足。我尝试过的所有事情都会导致错误,例如"输入最多需要1个参数,得到3"等等。

selection = 5
loopCount = 0
deposit = 0
cost = 1.75
print("It costs $",cost,".")
deposit = float(input("Enter your money amount (e.g. 1.5 for $1.50, .50 for $0.50, etc.):\n--\n"))
deficit = cost - deposit
change = deposit - cost
if deposit < cost:
    while deficit > 0 and loopCount < 1:
        ??? = float(input("Please enter an additional $",deficit,"."))
        loopCount += 1
if deposit >= cost:
    print("Thank you for purchasing item#",selection,". Your change is $",change,".")

2 个答案:

答案 0 :(得分:1)

这对我有用。确保增加loopCount,就像现在一样,它不会循环多次。

selection = 5
loopCount = 0
deposit = 0
cost = 1.75
print("It costs $",cost,".")
deposit = float(input("Enter your money amount (e.g. 1.5 for $1.50, .50 for $0.50, etc.):\n--\n"))
deficit = cost - deposit
change = deposit - cost
if deposit < cost:
    while deficit > 0 and loopCount < 1:
        deficit -= float(input("Please enter an additional ${}.".format(deficit)))
        loopCount += 1
if deposit >= cost:
    print("Thank you for purchasing item#",selection,". Your change is $",change,".")

答案 1 :(得分:0)

假设你不想从循环中解脱,直到他们支付足够的钱,你可以这样做:

while abs(deficit) < cost:
    added = float(input("Please enter an additional $",deficit,"."))
    deficit = cost - deposit - added 

abs函数将输出绝对值,以便您可以直接将其与成本进行比较。

要注意的事项,您可能希望对输入进行错误检查。 此外,如果您确实希望能够为用户提供一种断开循环的机制,您可以添加一个布尔值true或false(而不是循环计数),它附加到其他输入,例如&#34;你想要吗?插入更多钱? y或n&#34;