Python嵌套了try / except块,并检查日期

时间:2018-11-17 20:12:28

标签: python

我认为我对try / except块在python中的工作方式有一些误解。

我得到的输入是日期,格式为YYYY-MM-DD或YYYY-MM或YYYY。我需要检查的是确切交付的内容(无论我只有一天还是一个月+天还是一个完整的日期)。

def check(date_text):
  year_delivered = True
  month_delivered = True
  day_delivered = True
  try:
    date = datetime.datetime.strptime(date_text, '%Y-%m-%d')
  except ValueError:
    day_delivered = False
    try:
      date = datetime.datetime.strptime(date_text, '%Y-%m')
    except ValueError:
      month_delivered = False
      try:
        date = datetime.datetime.strptime(date_text, '%Y')
      except ValueError:
        year_delivered = False 
  return year_delivered, month_delivered, day_delivered 

我想使用datetime和flags进行检查。因此,据我了解,date_text = "2018"的前两个try / except块应引发异常,并更改日和月标志的值。但是,它们仍然是True,我不太明白为什么。

提前谢谢

0 个答案:

没有答案