c'isanqizhi 2022-12-23 01:16 采纳率: 33.3%
浏览 14
已结题

Python异常处理,请问哪里还有隐藏条件吗?

题目:

img

等周末真的写不出来,再来看提问:),谢谢你~!
以下是我的代码(只做对题目所给的输入输出,其余答案错误):

try:
    n = int(input())
    mat = []
    assert n != 0, "ErrorInput"
    for row in range(n):
        mat.append(list(map(int, input().split())))
    for k in range(n):
        try:
            ans = 0
            assert 0 < mat[k][1] <= 12, "ErrorInput"
            assert 0 < mat[k][2] <= 31, "ErrorInput"
            assert 0 <= mat[k][0], "ErrorInpout"
            assert all(type(i) in (int, float) for i in mat[k]), "ErrorInput"
            dic = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
            if mat[k][1] > 2:
                for j in range(1, int(mat[k][1])):
                    ans = ans + dic[j]
                ans = ans + mat[k][2]
                if mat[k][0] % 400 == 0 or (mat[k][0] % 4 == 0 and mat[k][0] % 100 != 0):
                    ans = ans + 1
            elif mat[k][1] == 2:
                for j in range(1, 2):
                    ans += dic[j]
                ans = ans + mat[k][2] - 1
            elif mat[k][1] == 1:
                if mat[k][2] == 1:
                    ans = 0
                else:
                    ans = mat[k][2] - 1
        print("Totaldays = {0}".format(ans))

    except AssertionError as msg:
        print("{0}".format(msg))

except ValueError:
print("ErrorInput")
except AssertionError as msg:
print("{0}".format(msg))

  • 写回答

2条回答 默认 最新

  • 於黾 2022-12-23 08:06
    关注

    1.这里只是要求你输出一个字符串,没有要求你调用异常类,所以什么try和assert的组合都是多余的设计
    2.简单的引入datetime就很容易能判断一个字符串到底能不能被转换成时间,做运算也会非常容易
    3.你这里只判断正常的月份在1-12之间,日期在1-31之间,但是没有判断月份和日期的关系呀,2月30日也算正常日期吗

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月3日
  • 专家已采纳回答 12月26日
  • 创建了问题 12月23日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境