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

求解用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日

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线