elif除了ValueError

时间:2018-05-07 00:09:55

标签: python python-3.x input

为什么这段代码不起作用?没有简单的解释方法。

def main():
  while True:
    mon = input("What is the month? ( 1 - 12 )")
    try:
        mon = int(mon)
    except ValueError:
        print("Try again.")
    elif mon > 0 and mon < 13:
        break
    else:
        print("Try again.")

1 个答案:

答案 0 :(得分:0)

您应该对代码进行一些更改以使其正常工作。

您应该将else用作try / except / else结构的一部分。同时使用continue明确表示循环将继续的位置。

您的代码无效,因为if / else条款不能以elif开头。

这是一个有效的例子:

def main():
    while True:
        mon = input("What is the month? ( 1 - 12 )")
        try:
            mon = int(mon)
        except ValueError:
            print("Try again.")
            continue
        if mon > 0 and mon < 13:
            break
        else:
            print("Try again.")
    return mon