关于python3.2:创建一个函数来确定用户输入的日期是有效还是无效

时间:2012-04-27 00:22:23

标签: python python-3.2

您好我正在尝试创建一个基本的python程序,用于确定用户输入的日期是有效还是无效。我很难确定问题所处的位置并且已经存在了一段时间。任何帮助表示赞赏。到目前为止,这是我的代码。

def main():
#get the month day and year
(month, day, year)=eval(input("Enter month, day, and year numbers:"))
date1=str(month)+"/"+str(day)+"/"+str(year)
#determine if user inputted date is valid or invalid
def Valid (month, day, year): int(month) in range(0,12), int(day) in range(0,31), int(year) in range(0,100000)
def Verify (month, day, year):
    if (month, day, year) is Valid (month, day, year):
        print ((date1), "is a valid date.")
    else:
        print ("This is not a valid date.")

Verify (month, day, year)

(主)

1 个答案:

答案 0 :(得分:0)

我只是开始使用Python,所以我无法正确地做到这一点,但是尽可能少地修改你的代码,并在我的建议之前留下你的注释:

#determine if user inputted date is valid or invalid 
def Valid (month, day, year):
    #int(month) in range(0,12), int(day) in range(0,31), int(year) in range(0,100000) 
    return int(month) in range(1,13) and int(day) in range(1,32) and int(year) in range(1,100000)

def Verify (month, day, year):
    #if (month, day, year) is Valid (month, day, year):
    if Valid (month, day, year):
        print ((date1), "is a valid date.")
    else:
        print ("This is not a valid date.")

#get the month day and year 
(month, day, year)=eval(input("Enter month, day, and year numbers:")) date1=str(month)+"/"+str(day)+"/"+str(year) 
Verify (month, day, year)

请注意“在范围(0,12)”中,0到11将返回True,12时返回False;你需要(1,13)月测试。 当然,这仍然认为1989年2月29日和4月31日是有效的。请记住,如果世纪也被4整除,那么被4整除的年份只是闰年,而且正常使用时没有0年。