lcs的简单python程序中的一个bug

2024-05-16 22:22:47 发布

您现在位置: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

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

打印结果显示“无”

例如:

0 0
0 None
0 None
0 None
None None

然后程序出现错误:

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

我不知道“没有”是从哪里来的

我是新来的,谢谢


Tags: orimport程序numpynonereturnifdef
1条回答
网友
1楼 · 发布于 2024-05-16 22:22:47

i don't know where the 'None' comes

如果不返回任何内容,则python函数的返回值为None。你知道吗

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

相关问题 更多 >