运行此程序时出现递归错误

时间:2020-09-21 14:29:32

标签: python

编写一个函数number_in_month,该函数接受日期列表“ int的嵌套列表”和月份“ int”,并返回显示列表中给定月份中的许多日期。

def number_in_month(ds,m):
    for d in ds:
        if d[1]==m:
            return 1 + number_in_month((ds - d[1]),m )
        else:
            return     number_in_month((ds - d[1]),m )
print(number_in_month([[1,2,3],[7,2,5],[6,2,5],[4,2,36],[9,2,55],[3,2,30]],2))

我得到的错误:

Traceback (most recent call last):
  File "assing.py", line 22, in <module>
    print(number_in_month([[1,2,3],[7,2,5],[6,2,5],[4,2,36],[9,2,55],[3,2,30]],2))
  File "assing.py", line 19, in number_in_month
    return 1 + number_in_month((ds - d[1]),m )
TypeError: unsupported operand type(s) for -: 'list' and 'int'

1 个答案:

答案 0 :(得分:1)

因为函数number_in_month不返回任何东西。我不了解详细逻辑,所以无法显示解决方案代码