我简单的lcs python程序中的一个错误

时间:2013-10-06 13:26:00

标签: python

import numpy as np
def lcs(i, j):
    global x, y, c         
    if i <= 0 or j <= 0:
        return 0
    else:
        if c[i][j] < 0:
            if x[i - 1] == y[j - 1]:
                c[i][j] = lcs(i - 1, j - 1) + 1
            else:
                m = lcs(i - 1, j)
                n = lcs(i, j - 1)
                print m, n
                c[i][j] = max(m, n)
        else: return c[i][j]
c = np.zeros((8, 8), int)
c = c - 1
x = 'ABCBDAB'
y = 'BDCABA'
lcs(7, 6)
print c

程序有bug,所以我查找'm','n',

打印结果出现'无'

例如:

0 0
0 None
0 None
0 None
None None

然后程序出错:

TypeError: long() argument must be a string or a number, not 'NoneType'

我不知道“无”来自哪里

我是新手,谢谢

1 个答案:

答案 0 :(得分:0)

  

我不知道“无”来自哪里

如果你没有返回任何东西,python函数的返回值是None

特别是,您不会在if c[i][j] < 0:分支中返回任何内容。