溴麝香草酚狼 2022-04-19 16:30 采纳率: 100%
浏览 2421
已结题

求解用Python获取用户输入月份,输出该月有多少天(考虑闰年)

题目

img

我写的码

y,m = input().split(',')
if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:
    print('31')
elif m == 4 or m == 6 or m == 9 or m == 11:
    print('30')
else:
    if eval(y) % 400 == 0 or (eval(y) % 4 == 0 and eval(y) % 100 != 0):
        print('29')
    else:
        print('28')

提交上去之后输出不太对(由于隐藏了输入值,看不到具体哪里错了)

img

求解以下问题
1.如何优化(if后面赋值太冗长了)
2.解决输出错误问题

  • 写回答

1条回答 默认 最新

  • 「已注销」 2022-04-19 17:25
    关注

    参照我这个写法修改下

    #  月份天数初始化列表,索引代表月份
    # 0 占位用的
    month_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    
    
    def is_leap(year):
        """返回 True 闰年, False 非闰年."""
        # 能被4整除且(不能被100整除或能被400整除)
        return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
    
    
    def days_in_month(year, month):
        """返回当年当月天数"""
    
        if not 1 <= month <= 12:
            return '无效月份 Month'
    
        if month == 2 and is_leap(year):
            return 29
        # 返回month索引值对应的月天数
        return month_days[month]
    
    
    # 示例
    print(days_in_month(2022, 2))
    
    28
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月19日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效