如果提供了无效条目,则此代码(日期)的返回为“无”,然后给出有效条目。但是,如果第一次给出有效条目,则会给出正确的日期返回。关于我如何解决它的任何提示?
def getDate():
date = input("Please enter the date in DD/MM/YYYY format: ")
try:
strptime(date, "%d/%m/%Y")
return date
except:
print ("Invalid Date, please enter again")
getDate()
答案 0 :(得分:3)
由于有很多错误的答案被发布到这个问题,我觉得有必要添加另一个。在except子句中添加return getDate()
将使其按预期工作:
def getDate():
date = input("Please enter the date in DD/MM/YYYY format: ")
try:
strptime(date, "%d/%m/%Y")
return date
except:
print ("Invalid Date, please enter again")
return getDate()
但是,使用递归处理重试并不理想。改为使用循环:
from time import strptime
def getDate():
while True:
date = input("Please enter the date in DD/MM/YYYY format: ")
try:
strptime(date, "%d/%m/%Y")
return date
except ValueError:
print ("Invalid Date, please enter again")