havemanyquestion 2023-03-18 15:43 采纳率: 83.3%
浏览 548
已结题

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

获取用户输入月份,输出该月有多少天(考虑闰年)。
输入:"2000,2"
输出:"29"

我的思路

if __name__ == '__main__':
    year,month = input().split(',')
    # 判断
    if month in [1, 3, 5, 7, 8, 10, 12]:
        days = 31
    elif month in [4, 6, 9, 11]:
        days = 30
    else:
        if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
            days = 29
        else:
            days = 28
    # 输出
    print('%d' % (days))

不知道哪里出问题了,求指点

  • 写回答

3条回答 默认 最新

  • 追cium 2023-03-18 15:50
    关注

    参考GPT和自己的思路:

    您的代码中出现了几个问题:

    1. 在第二行中,您使用了 input() 函数获取用户输入,并使用 split() 方法将输入的年份和月份分开。但是您没有将输入的字符串转换成数字类型。因此,在第 9 行判断是否是闰年时,会将年份作为字符串进行计算,而不是数字。因此,需要在第二行使用 map() 函数,将两个字符串转换为数字。

    2. 在第 4 行和第 6 行中,您使用了月份作为元素的列表。由于用户输入的月份是字符串类型,因此需要将其转换为整数类型进行比较。因此,需要将列表中的元素都改为整数类型。

    下面是修改后的代码:

    if __name__ == '__main__':
        year, month = map(int, input().split(','))
        # 判断
        if month in [1, 3, 5, 7, 8, 10, 12]:
            days = 31
        elif month in [4, 6, 9, 11]:
            days = 30
        else:
            if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
                days = 29
            else:
                days = 28
        # 输出
        print('%d' % (days))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月18日

悬赏问题

  • ¥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之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改