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

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

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

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆