我试图使用python计算一个人从出生日期开始的年龄。
我做了以下事情:
导入日期时间,日期
from datetime import datetime, date
创建以下表示法:
print ('Enter your date of birth here (dd mm yyyy): ')
date_of_birth = datetime.strptime(str(input('----->')), '%d %m %Y')
def calculate_age(born):
today = date.today()
return today.year - born.year - (( today.month, today.day) < (born.month, born.day))
age = calculate_age(date_of_birth)
print (age)
但是,当我以此格式输入日期时9121991
:
我收到此值错误。
顺便提一下,当我以09121991
格式输入时,我收到了此错误
我该如何纠正?
答案 0 :(得分:1)
由于您的格式中包含空格,因此无法识别您的字符串。
有效:
from datetime import datetime, date
date_of_birth = datetime.strptime("09121991", '%d%m%Y')
请注意,您无法使用input
输入09121991
,因为在Python 2中:
input
评估表达式09121991
被视为八进制数,但无效,因为它包含9
所以替代方案是使用raw_input()
。那会有用。
顺便说一句:如果你需要用零填充,请使用raw_input().zfill(8)
。无需使用该技巧添加前导零。