在python中使用递归函数

在python中使用递归函数,python,recursion,Python,Recursion,我尝试在python上使用递归函数,我有一个矩阵W: [[ 13. 14. ] [ 12. 15. ] [ 0. 4. ] [ 3. 6. ] [ 7. 8. ] [ 11. 18. ] [ 10. 17. ] [ 2. 23. ] [ 5. 22. ] [ 16.

我尝试在python上使用递归函数,我有一个矩阵W:

[[ 13.          14.   ]
 [ 12.          15.   ]
 [  0.           4.   ]
 [  3.           6.   ]
 [  7.           8.   ]
 [ 11.          18.   ]
 [ 10.          17.   ]
 [  2.          23.   ]
 [  5.          22.   ]
 [ 16.          19.   ]
 [  1.          27.   ]
 [  9.          21.   ]
 [ 25.          29.   ]
 [ 24.          28.   ]
 [ 20.          26.   ]
 [ 31.          32.   ]
 [ 30.          33.   ]
 [ 34.          35.   ]
 [ 36.          37.   ]]
对于每一行,我得到两列的值,如果它们是20,那么35%20=15,我去第15行我得到值,如果我找到它,例如11,我返回11,如果我找到它23,例如,我重做模23%20=3,我去第3行,依此类推。。这是我的密码

def modulo(entier):
        if entier < 20:
            return(entier)
        else:
            c = (entier % 20)
            if int(W[c,0]) < 20:
                return(int(W[c,0]))
            else:
                a = modulo(int(W[c,0]))
                return(a)
            if int(W[c,1]) < 20:
                return(int(W[c,1]))
            else:
                e = modulo(int(W[c,1]))
                return(e)
    i = 12
    print(modulo(int(W[i,0])), modulo(int(W[i,1])))
def模(entier):
如果entier<20:
返回(完整)
其他:
c=(全部%20)
如果int(W[c,0])<20:
返回值(int(W[c,0]))
其他:
a=模(int(W[c,0]))
报税表(a)
如果int(W[c,1])<20:
返回(int(W[c,1]))
其他:
e=模(int(W[c,1]))
返回(e)
i=12
打印(模(int(W[i,0])),模(int(W[i,1]))

在这里,我尝试了矩阵的第12行,它有25和29两个值,遵循原则,函数必须返回11和18作为值25,16和19作为值29。但在运行中,程序仅显示两个值11和16。我的印象是,它只指向矩阵的第一列,而不读取第二个if条件。我希望我能很好地解释这个问题,并找到解决办法。谢谢

这听起来像是一个反复的过程。为什么要使用递归?@KlausD。老实说,对我来说,这听起来是重复的。但我不能确定,因为解释不完整。例如,两个数字小于20意味着什么?其中一个?二者都哪一个?此外,函数的参数似乎是一个数字,而不是两个数字。因为我每次都需要进行模运算,直到值小于20为止,只要它找到一个更高的值,它就会重复该过程,直到值小于20为止。这里我做的是一个20线的小基数,但之后我将把同样的原理应用到一个更大的基数上base@KonradRudolph我希望每一行对两个值(两列)应用相同的原则@student,太好了,发布代码,在其中迭代矩阵,调用函数并获得预期结果