2015-04-28 6 views
1

Я пишу скрипт, чтобы попросить пользователя ввести дату. Если это формат даты, верните запись; в противном случае продолжайте. Но мой код не останавливается, даже если пользовательский ввод действителен. Может кто-нибудь, пожалуйста, поделиться некоторым пониманием? Благодаря!Python while loop не останавливается

def date_input(prompt): 
    while True: 
     date_text = raw_input(prompt) 
     try:   
      datetime.datetime.strptime(date_text, '%Y-%m-%d') 
      return date_text 
     except: 
      print('Invalid input.') 
      continue 

ответ

2

Вы никогда не должны использовать except, всегда проверять для конкретного исключения:

except ValueError: 

Тогда ваша реальная ошибка должна прийти до конца. Я подозреваю, что вы не импортировали datetime.

+0

Я попробовал «за исключением ValueError», прежде чем он дал мне то же самое, но теперь я снова открыл скрипт, он работает сейчас. Благодаря! – niuniu

Смежные вопросы