年龄检查器Python3 18+

时间:2020-04-01 09:12:28

标签: regex python-3.x

我需要在Pyhton3上编程,以检查用户是否为18岁以上。 输入:出生日期。 4种格式(25/12 / 2000,25-12-2000,25.12.2000,25_12_2000) 如果打印错误(格式错误) 输出:“欢迎使用系统”或“对不起,当您18岁以上时复出” 如果您需要我的愚蠢尝试:

from datetime import datetime, date

    def try_parsing_date(text):
        for fmt in ('%d/%m/%Y', '%d.%m.%Y', '%d-%m-%Y', '%d_%m_%Y'):
            try:
                return datetime.strftime(text,fmt)
            except ValueError:
                pass
        raise ValueError('no valid date format')
    dob  = input('Введите свой день рождения (дд/мм/гггг): ')
    try_parsing_date(dob)

也许用正则表达式处理它?<​​/ p>

```re_age_checker= "^(0[1-9]|[12][0-9]|3[01])[- \/.,_](0[1-9]|1[012])[- \/.,_](19|20)\d\d"```

1 个答案:

答案 0 :(得分:0)

您的尝试是一个好的开始,但是您将strftimestrptime混为一谈;改变它。

也许用正则表达式处理它?<​​/ p>

这是不可取的。完成上述更改后,我们可以使用函数try_parsing_date的结果来计算18岁生日,只需将其与今天的日期进行比较即可。

dt = try_parsing_date(dob)
import time
# compute the 18th birthday:
d = date.fromtimestamp(time.mktime((dt.year+18, dt.month, dt.day, *(0,)*6)))
if d <= date.today():
    print("welcome to system")
else:
    print("sorry comeback when you will be 18+")