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日

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应