通过身份证判断星座的python代码
时间: 2024-11-10 14:32:11 浏览: 49
在Python中,通常我们不会直接通过身份证号码来判断星座,因为身份证号码并不包含出生日期信息,而星座的计算需要具体的生日。但是,如果你的数据集中包含了身份证号码对应的出生日期,你可以编写一个简单的函数来进行星座判断。这里是一个例子,假设你有一个人口数据字典`data`,其中`'id'`字段对应身份证号码,`'birthday'`字段对应出生日期:
```python
from datetime import datetime
# 定义星座对应的日期范围
constellation_map = {
'白羊座': (0, 31),
'金牛座': (32, 60),
'双子座': (61, 90),
# ...
'摩羯座': (228, 31),
}
def get_zodiac(birthdate_str):
try:
birthdate = datetime.strptime(birthdate_str, '%Y-%m-%d') # 格式化输入的日期
month, day = birthdate.month, birthdate.day
for zodiac_name, date_range in constellation_map.items():
if date_range[0] <= day <= date_range[1]:
return zodiac_name
except ValueError:
print("无效的日期格式")
# 使用示例
if 'id' in data and 'birthday' in data['id']:
id_num = data['id']
birthdate = data['id']['birthday'] # 假设这里的birthdate_str就是生日字符串
zodiac = get_zodiac(birthdate)
print(f"身份证号 {id_num} 对应的星座是 {zodiac}")
else:
print("身份证号码或生日信息缺失")
阅读全文