Python循环不按预期工作

时间:2013-09-08 19:29:26

标签: python python-2.7

在菜单上选择2作为我的选择后,当我输入1作为选项时,程序打印“感谢使用.....再见”,然后循环回菜单而不是停止。我无法弄清楚原因是什么,因为我多次尝试修复它但失败了。请告诉我该怎么做。谢谢

代码:http://pastebin.com/kc0Jk9qY

很抱歉,我无法在此评论中实施代码,这变得很麻烦。

3 个答案:

答案 0 :(得分:0)

所有代码,如果在while n!=1:循环中。当您想要退出时设置n=1,就是这样。因此,只需将代码更改为以下内容即可停止:

   elif endex==1:
        print "\nThank you for using RBDC Bin2Dec Converter \nGoodbye"
        time.sleep(1)
        error2=False
        n=1

break只会终止最里面的循环,所以需要确保所有外部循环都被终止。

修改 更改的代码是:

if choice==2:
    while error2:
        try:
            endex=input("Do you want to Exit? \nInput (1)y or (2)n: ")
            if endex== 0 or endex >=3:
                print"Try again"
            if endex==2:
                print "You have chosen to run this programme again...\n"
            if endex==1:
                print "\nThank you for using RBDC Bin2Dec Converter \nGoodbye"
                time.sleep(1)
                error2=False
                n=1

答案 1 :(得分:0)

您提供的内容看起来是正确的。那个break会让你脱离while error2循环。所以问题必定在那之后。我希望if choice==2在另一个循环中,你并没有突破它。

答案 2 :(得分:0)

好的,就是这样。您的error2值是不成功的。只需启动一个无限循环并打开有效的响应。我也会考虑在你的其他循环中这样做。

if choice==2:
    while True:
        try:
            endex=input("Do you want to Exit? \nInput (1)y or (2)n: ")
            if endex== 0 or endex >=3:
                print"Try again"
            if endex==2:
                print "You have chosen to run this programme again...\n"
                break
            if endex==1:
                print "\nThank you for using RBDC Bin2Dec Converter \nGoodbye"
                time.sleep(1)
                n=1
                break