0

我正在制作自动售货机,但我有点卡住了。

代码: http: //pastebin.com/5AWG1qWw

在我的机器上,我有 6 个选择,但是当我运行程序时,一切正常,除非我来到vending=input("Select a Option: ")所以说我输入“1”它会问我同样的问题,而不是去if vending==1:

4

2 回答 2

2

它会在每一步之后重复,因为你没有对 1 到 6 之间的数字做任何事情,

while error2==True:
    try:
        vending=input("Select a Option: ")
        if vending >= 7:
            print"Enter a number between 1-6. Please try again."
        elif vending==0:
            print"Enter a number between 1-6. Please try again."
            error2=False
        else:
            #do something
            # Set error2 to False to break out of the while loop.
    except NameError:
        print"Enter a number between 1-6. Please try again."
        time.sleep(1)
    except SyntaxError:
        print"Enter a number between 1-6. Please try again."
        time.sleep(1)
于 2013-05-28T18:07:12.457 回答
2

输入数字 1-6 后,您永远不会设置error2为 false。仅在输入 a 后设置为 false0

附录:我不喜欢简单地使用变量来跟踪while循环。或者你可以做

while True: 
    if vending = what_you_want:
        do_something()
    #then  to quit looping: 
    elif vending == 0:
        break
于 2013-05-28T18:07:36.177 回答