Возможно ли "попробовать / исключить ValueError UNLESS"? - PullRequest
0 голосов
/ 31 мая 2018

Я новичок в python и последние несколько часов пытаюсь понять, как заставить это работать должным образом ...

Это очень простой код IЯ уверен, но я просто не понимаю.

Это должно быть довольно понятным ниже в коде, но в основном я прошу пользователя ввести дату события как 'int'а если это не число, попросите их попробовать еще раз ... UNLESS это "?"

while True:
    date = None
    street = str(input('Name of street?: ').title())
    city = str(input("In what city?: ").title())
    while True:
        try:
            year = int(input("Date of event? (or '?'): "))
            if date == "?":
                break
        except Exception:
            print("That's not a date, try again!")
            continue
        break

Кажется, что даже не видно ЕСЛИ , потому что он пойман «кроме» раньше, чем сможет.

Ответы [ 2 ]

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

Попытка использовать исключение valueError.Также я думаю, что в своем посте вы упомянули, что хотите ввести дату как целое число, поэтому я заменил год на дату.Если вы хотите, чтобы год был целым числом, вы можете заменить переменную дату на год.Если вы хотите, чтобы пользователь вводил год, день и месяц, то эту программу нужно немного переработать.

date = None
street = str(input('Name of street?: ').title())
city = str(input("In what city?: ").title())
while True:
    date = input("Date of event? (or '?'): ")
    if date == "?":
        break
    else:
        try:
            date = int(date)
        except ValueError:
            print("That's not a date, try again!")
            continue
        break
0 голосов
/ 31 мая 2018

Если вы собираетесь отображать справку или что-то, когда '?'введите, затем просто вызовите функцию, чтобы отобразить справку, в которой у вас есть перерыв.

if date == "?":
    display_help()
    continue

Затем разделите чтение ввода и обработайте его в два этапа.

in = input("Date of event? (or '?'): ")
if in == "?":
    display_help()
    continue
year = int(in)

Кроме того, вы запрашиваете дату, но затем предполагаете, что год введен, я бы более четко указала в вашем приглашении.

«Пожалуйста, введите год события, например: 1998» или любую другую форму, которую вы на самом делехочу это.

...