【python学习】如何用字典、循环语句和条件语句输出和统计生肖和星座

需求:

  1. 输入年份、月份、日期,输出对应的生肖和星座
  2. 可以多次输入
  3. 可以统计输出年月日对应的生肖和星座的个数

分析:

  1. 输入用三个input,输出对应的生肖和星座可以通过计算得出
  2. 可以多次输入,使用while循环语句
  3. 用字典存储生肖个数和星座个数,首先初始化个数为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]))
    # 统计生肖个数+1
    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]))
    # 统计星座个数+1
    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值