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

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

获取用户输入月份,输出该月有多少天(考虑闰年)。
输入:"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日