这是一个较大的自动售货机的一部分模块"我正在努力。不过,我遇到了一些问题。如果他们没有支付足够的费用(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,".")
答案 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;