一、实例描述
两千多年前希腊的天文学家希巴克斯为标示太阳在黄道上运行的位置,将黄道带分成十二个区段,依次是白羊、金牛、双子、巨蟹、狮子、处女、天秤、天蝎、射手、摩羯、水瓶、双鱼。 本次实例是根据用户输入公立日期,判断属于哪个星座。
二、设置星座列表
# 星座列表
sdate = [21,20,21,21,22,22,23,24,24,24,23,22]
conts = ['摩羯座','水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座']
signs = ['♑','♒','♓','♈','♉','♊','♋','♌','♍','♎','♏','♐','♑']
type = ['务实本分','作天作地','安于现状','积极乐观','固执内向','圆滑世故','多愁善感','迷之自信','精明计较','犹豫不决','阴暗消沉','放荡不羁','务实本分']
三、生日日期的输入以及月日的提取
# 输入生日,输出星座
birth = input('请输入您的出生年月日,格式为:2001-02-21或2001-2-21\n').strip(' ')
# 分割年月日
cbir = birth.split('-')
# 提取月、日
cmonth = str(cbir[1])
cdate = str(cbir[2])
在这实例中,strip()的作用是去除日期首尾的空格。再用split根据'-'进行分割,分别提取日数据和月数据。
四、定义判断星座函数
def sign(cmonth,cdate):
if int(cdate)<sdate[int(cmonth)-1]:
print(conts[int(cmonth)-1])
print(signs[int(cmonth)-1])
print(type[int(cmonth)-1])
else:
print(conts[int(cmonth)])
print(signs[int(cmonth)])
print(type[int(cmonth)-1])
该函数的原理是:如果日数据早于对应月列表中的对应日期,则输出对应月对应的星座信息。否则,输出下一个月对应的星座信息。