python编写程序,输入出生年月日,输出你的生肖和星座。 输入格式: 输入出生年月日 (格式如20200112) 输出格式: 分2行输出生肖和星座。
时间: 2024-10-01 11:04:19 浏览: 0
在Python中,你可以使用datetime模块来处理日期,并结合一些生肖和星座的对应规则来实现这个功能。以下是一个简单的示例代码:
```python
from datetime import datetime
def get_zodiac_and_star_sign(input_date):
# 生肖对应的年份范围
zodiacs = [(1900, '鼠'), (1912, '牛'), (1924, '虎'), (1936, '兔'), (1948, '龙'), (1960, '蛇'), (1972, '马'), (1984, '羊'), (1996, '猴'), (2008, '鸡'), (2020, '狗'), (2032, '猪')]
# 星座对应的月份和天数范围
star_signs = {
'摩羯座': (22, 20),
'水瓶座': (21, 19),
'双鱼座': (20, 20),
'白羊座': (21, 20),
'金牛座': (21, 30),
'双子座': (22, 21),
'巨蟹座': (22, 22),
'狮子座': (23, 22),
'处女座': (23, 22),
'天秤座': (23, 23),
'天蝎座': (24, 21),
'射手座': (23, 21)
}
date_obj = datetime.strptime(input_date, '%Y%m%d')
year = date_obj.year
month = date_obj.month
day = date_obj.day
for zodiac_start_year, zodiac_name in zodiacs:
if year >= zodiac_start_year:
if (year - zodiac_start_year) % 12 == (date_obj.year - zodiac_start_year) // 12:
print(f"生肖:{zodiac_name}\n")
break
for sign_name, (start_month, end_day) in star_signs.items():
if start_month <= month < end_day or (month == end_day and day >= 1):
print(f"星座:{sign_name}\n")
break
# 使用函数并提供输入样例
get_zodiac_and_star_sign('20230501')
```
当你运行此程序并提供一个有效的出生日期,它将输出相应的生肖和星座。