中断功能似乎跳到了除定义以外的其他位置

时间:2019-04-11 08:43:36

标签: python python-3.x

使用此代码,一切都可以正常工作来定义我的颜色。当代码到达break语句时,代码跳至代码上的except ValueError:

我已经遇到过几次这个问题,我知道我可以绕过这个问题,但是我想了解发生的事情仅仅是出于知识的考虑。

我相信这是由于我使用while循环并试图打破它们以继续执行代码的方式而引起的,但是我仍然对为什么要备份代码感到好奇。

  while(1) : #loop for y, continues when y has a valid input
    y = input("please enter your y coordinate (1 - 8) or x to exit")
    if y == "x" or y == "X":  #checks if the user wants to leave the program
      exit()

    try: #checks to see if the input is valid
      y = int(y) - 1
      if y >= 0 and y <= 7:
        break #leaves the loop if the input is valid
      else:
        print("ERROR: invalid Y input 1", y)
    except ValueError:
      print("ERROR: invalid Y input 2", y)


  while(1): #loop for color defining, continues with a valid input
    color = input("Select your color from R, G, B or W")
    color.lower
    if "r" or "g" or "b" or "w" in color: #checks user input, if color is one of the set colors it will continue the code
      break
    elif color == "x":
      exit()

我希望代码能脱离第二个while(1)循环并继续正常进行。 相反,我从except ValueError:接收打印输出。然后,代码从第一个while循环继续。

0 个答案:

没有答案