大家好,我一直在尝试创建一个有效的python自动售货机一个多月了,看起来我没有取得任何进展。如果有人可以帮助我,那可能会很棒:)这是我的计划到目前为止:
print ("Welcome to the Vending Machine\n")
total = 0
dr = 1
sn = 3
money=int(input("How much money do you want to insert"))
print ("Prices: Drinks: £1, Snacks: £3\n")
Drinks = {'Coke','Pepsi','Orange Juice', 'Apple Juice','Water'}
Snacks = {'Chocolate', 'Snickers','Twix','Peanuts','Crisp'}
state = 'subtotal'
while total <= money:
if state != 'total':
print('')
print('')
print ("\nDrinks Menue:")
print(Drinks)
print ("Snacks Menue:")
print(Snacks)
choice = input("\nEnter the item of your choice: ")
if choice in Drinks:
total += dr
elif choice in Snacks:
total += sn
else:
state = 'total'
print("\n\nThat will be a",state,"of £",total)
else:
print("You have exceeded your inserted money good bye")
我正在尝试让代码拒绝无效输入,并在用户超出其支出限额时停止。
答案 0 :(得分:2)
运行此操作时,只有一个问题。所以,这里有一些解释,所以你可以学到一些东西。这似乎是一个简单的错误,但我们都会在某些时候制造它们,最终,缩进将成为第二天性。
<强>缩进强>
与某些语言不同,在Python中缩进很重要。很多。让我们看看你的第一个if
声明。
if state != 'total':
print('')
print('')
print ("\nDrinks Menue:")
print(Drinks)
print ("Snacks Menue:")
print(Snacks)
choice = input("\nEnter the item of your choice: ")
你能看到问题吗?在if
语句之后,或者更准确地说,在:
之后,我们需要缩进我们想要由if语句执行的所有其他操作,否则Python将不知道在哪里停止!所以通过这个简单的改变:
if state != 'total':
print('')
print('')
print ("\nDrinks Menue:")
print(Drinks)
print ("Snacks Menue:")
print(Snacks)
我们没有更多错误,您的程序现在运行。注意缩进?只要检查它们是否总是正确的。