elif для кроме ValueError - PullRequest
       8

elif для кроме ValueError

0 голосов
/ 07 мая 2018

Почему этот код не работает? Нет простого способа объяснить.

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 голосов
/ 07 мая 2018

В код необходимо внести несколько изменений, чтобы он работал.

Вы должны использовать 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
...