0

填字游戏垂直求解函数,程序给出的列表索引超出了 ' if crosswords[num]==None' 语句的范围

提供该声明是为了消除此类错误

def find_word_vertical(crosswords,word):
    word_list=[i for i in word]
    l=len(word_list)
    index=[]
    for col in range(len(crosswords[0])):
        for row in range(len(crosswords)):
            if word_list[0]==crosswords[row][col]:
                num=row
                ok=True
                for ch in range(l):
                    if crosswords[num]==None:
                        break
                        ok=False
                    else:
                        if word_list[ch]==crosswords[num][col]:
                            num+=1
                        else:
                            ok=False
                if ok:
                    return [row,col]
    return None

我找不到错误,因为程序针对某些示例测试用例运行,但错误出现在未知测试用例中。由于“超出索引”错误,确切的测试用例不会出现在屏幕上。示例问题=find_word_vertical([['s','d','o','g'],['c','u','c','m'],['a','c','a','t'],['t','e','t','k']],'cat')

4

1 回答 1

0
if crosswords[num]==None:
    break
    k=False

这个说法是错误的,正确的说法是:

if num>=len(crosswords):
    k=False
    break

如果元素在列表中不存在,它不会返回 None 而是返回错误。

于 2019-07-15T04:05:00.810 回答