利用python实现通过生日判断出对应的星座和属相 例如输入1999.01.01(输入格式自定义)。 输出相应的星座和属相
时间: 2024-10-29 18:25:38 浏览: 37
Python之输出和输入共5页.pdf.zip
在Python中,你可以通过日期处理库`datetime`来获取月份和年份,然后结合星座和属相的具体划分规则来进行计算。以下是一个简单的示例:
```python
import datetime
def get_zodiac_and_zoushi(birth_date_str):
birth_date = datetime.datetime.strptime(birth_date_str, '%Y.%m.%d')
year = birth_date.year
month = birth_date.month
# 星座划分(西方)
zodiacs = {
'摩羯座': (12, 22),
'水瓶座': (1, 20),
'双鱼座': (2, 19),
'白羊座': (3, 21),
'金牛座': (4, 21),
'双子座': (5, 21),
'巨蟹座': (6, 22),
'狮子座': (7, 23),
'处女座': (8, 23),
'天秤座': (9, 23),
'天蝎座': (10, 23),
'射手座': (11, 23)
}
# 属相划分(中国农历,简化版本,假设公历和农历对应)
chinese_zoushi = {
'鼠': (0, 2),
'牛': (2, 20),
'虎': (3, 21),
'兔': (4, 21),
'龙': (5, 22),
'蛇': (6, 22),
'马': (7, 23),
'羊': (8, 23),
'猴': (9, 23),
'鸡': (10, 24),
'狗': (11, 23),
'猪': (12, 22)
}
zodiac = "未知"
zoushi = "未知"
if (month, year) in zodiacs.items():
zodiac = zodiacs[(month, year)]
for zoushi_month, zoushi_range in chinese_zoushi.items():
if year % 12 == (zoushi_range[0] - 1) and month >= zoushi_range[1]:
zoushi = zoushi_month
break
return f"星座: {zodiac}, 属相: {zoushi}"
# 示例输入
birth_date_input = "1999.01.01"
print(get_zodiac_and_zoushi(birth_date_input))
```
这个函数首先将输入转换成datetime对象,然后根据星座和属相的划分规则找出对应的名称。请注意,此示例中的属相划分是基于公历和农历的一般对应关系,并不是精确的农历算法。
阅读全文