Python中将日期转换为整数用于比较的问题及代码错误解决方法
解决日期对象与整数比较的错误问题
嘿,我明白你的问题啦——你之所以会在if语句里出错,是因为**date1是datetime.date类型的对象,它代表的是具体的出生日期,不能直接和整数18做比较**。你已经写好了计算年龄的函数,只需要用这个函数返回的年龄数值来判断就可以啦!
修改后的完整代码
import datetime from datetime import date date_entry = input('Enter your birthdate in YYYY/MM/DD format: ') year, month, day = map(int, date_entry.split('/')) date1 = datetime.date(year, month, day) def calculateAge(birthDate): today = date.today() age = today.year - birthDate.year - \ ((today.month, today.day) < (birthDate.month, birthDate.day)) return age # Driver code age = calculateAge(date1) # 先把计算好的年龄存入变量 print(age, "years") if age < 18: # 用年龄数值和18比较,类型匹配 print('You are under age') exit()
关键修改说明
- 新增了
age = calculateAge(date1):把calculateAge函数返回的整数年龄值存到变量里,这样我们就有了可以和18比较的整数类型数据 - 把
if date1 < 18:改成if age < 18::现在是整数和整数比较,类型完全匹配,不会再出现类型错误啦 - 记住:
date1是一个日期对象,它记录的是年/月/日的具体日期,不是年龄的数值,所以不能直接和整数做大小比较哦
内容的提问来源于stack exchange,提问作者user18021056
相关产品推荐
相关产品推荐

