Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在单词搜索中使用递归查找单词_Python_List_Function_Recursion_Wordsearch - Fatal编程技术网

Python 在单词搜索中使用递归查找单词

Python 在单词搜索中使用递归查找单词,python,list,function,recursion,wordsearch,Python,List,Function,Recursion,Wordsearch,通过在单词搜索中查找单词,我对python3有了一些乐趣。我知道我可以很容易地用循环来实现这一点,但是,我对递归不太了解,我真的想知道如何用这种方式实现它 我首先在单词搜索中创建一个二维行列表,并将该列表称为“方形”。我创建了另一个我正在寻找的单词列表,称为“单词”(为了简单起见,让我们假设只有一个单词) 我将使用递归函数来处理单词可以到达的每个方向,并在每个函数中运行单词,如果找到,则返回True,如果没有,则返回False 这是第一个功能: def down(word, square):

通过在单词搜索中查找单词,我对python3有了一些乐趣。我知道我可以很容易地用循环来实现这一点,但是,我对递归不太了解,我真的想知道如何用这种方式实现它

我首先在单词搜索中创建一个二维行列表,并将该列表称为“方形”。我创建了另一个我正在寻找的单词列表,称为“单词”(为了简单起见,让我们假设只有一个单词)

我将使用递归函数来处理单词可以到达的每个方向,并在每个函数中运行单词,如果找到,则返回True,如果没有,则返回False

这是第一个功能:

def down(word, square):
    if (len(word)==0):
      return True
    elif (len(square)==0):
      print(square)
      return False
    else:
      if word[:1]==square[0][:1]:
        return down(word[1:], square[1:])
      elif (word[:1]!=square[0][:1]):
        print(square)
        return down(word, square[1:][1:])
      else:
        return False
此函数将尝试在二维列表中查找单词的第一个字母,然后检查在正方形的每个后续行中找到第一个字母的位置,以查看是否找到单词的其余部分

我不能让函数通过整个二维列表中每个一维列表的第一个字母,任何帮助都将不胜感激


谢谢

为了学习递归,我建议用笔和纸来掌握解决方案的流程,然后在编写代码后,如果事情没有按预期进行,则进行一些调试打印。如果你知道在任何一个给定的步骤中应该发生什么,通过一些小的例子,你会更容易把它弄对