需求:
- 输入年份、月份、日期,输出对应的生肖和星座
- 可以多次输入
- 可以统计输出年月日对应的生肖和星座的个数
分析:
- 输入用三个input,输出对应的生肖和星座可以通过计算得出
- 可以多次输入,使用while循环语句
- 用字典存储生肖个数和星座个数,首先初始化个数为0,每输出一个对应的生肖和星座,对应的个数+1,最后输出统计信息
代码:
constellation = '鼠牛虎兔龙蛇马羊猴鸡狗猪'
zodiac_name = (u'摩羯座', u'水瓶座', u'双鱼座', u'白羊座', u'金牛座', u'双子座',
u'巨蟹座', u'狮子座', u'处女座', u'天秤座', u'天蝎座', u'射手座')
zodiac_days = ((1, 20), (2, 19), (3, 21), (4, 21), (5, 21), (6, 22),
(7, 23), (8, 23), (9, 23), (10, 23), (11, 23), (12, 23))
num_ss = {}
for i in constellation:
num_ss[i] = 0
num_xz = {}
for i in zodiac_name:
num_xz[i] = 0
while True:
year = int(input('请输入年份:'))
month = int(input('请输入月份:'))
day = int(input('请输入日期:'))
print("%s年的生肖是%s" % (year, constellation[year % 12-4]))
num_ss[constellation[year % 12-4]] += 1
n = 0
while zodiac_days[n] < (month, day):
if (month, day) > (12, 23):
break
n = n+1
if (month, day) > (12, 31):
print('请输入正确的月份和日期')
else:
print('%s年%s月%s号的星座是%s' % (year, month, day, zodiac_name[n]))
num_xz[zodiac_name[n]] += 1
for each_key in num_ss.keys():
print('生肖%s有%d个' % (each_key, num_ss[each_key]))
for each_key in num_xz.keys():
print('星座%s有%d个' % (each_key, num_xz[each_key]))
总结
1.输出对应的生肖和星座比较简单,使用while循环和变量计算就可以
2.统计个数需要用到字典,并且根据对应的生肖和星座累计
3.输出统计信息使用keys方法,for each_key in num_ss.keys()遍历所有key