2 c546229855 c546229855 于 2016.04.15 13:25 提问

关于python函数递归返回值的问题

这是一个匹配字典中词语的函数。
按理说已经匹配成功了
在return之前加个print
输出结果是对的
但是在外面调用输出来就是None
不知道为什么
求大神!!

 def find_word(dictionary,word):
    if word in dictionary:
        return word
    else:
        if len(word)-1 == 0:
            return word
        else:
            word = word[0:len(word)-1]
            find_word(dictionary,word)

dictionary = read_dic()
print(find_word(dictionary,"热烈欢迎新"))

3个回答

c546229855
c546229855   2016.04.15 14:10

我懂了!!!else那里也要加return

CSDNXIAON
CSDNXIAON   2016.04.15 13:32

python函数-参数和返回值
scanf函数的返回值问题
编程中函数的返回值的定义问题的解决
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Meditator_hkx
Meditator_hkx   Rxr 2016.04.18 01:48

是的~但是感觉你这个匹配逻辑不是很清晰啊~

c546229855
c546229855 请指点0.0 第一次写这个,不是很了解
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Python 递归函数返回值为None的解决办法
每篇一句: Promises are often like the butterfly, which disappear after beautiful hover. 递归函数:  在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是 递归函数 。   递归函数可以简化我们的代码,但是递归函数的 返回值 有时候会出现一些意想不到的问题。 先来看以下一段代码: de
python 递归函数
python里面也可以使用递归函数,所谓递归函数就是利用函数本身调用自身,然后一直不停地调用自身,达到合适的条件,然后返回计算后的值。 例如:#计算5的以内的加法           def add(j):                if j==0:                     return 0               return j+add(j-1)      
帮助大家理解一下递归函数的返回值...
如题: 递归函数往往可以简化我们的代码,尤其是对树的遍历和利用回溯算法写代码的时候,但是递归函数的返回值往往是困扰我们的。 总体来说,我们先要理解函数的调用过程,函数调用过程会用栈来保存函数的返回值和过程,而递归函数就是调用自身函数的过程,所以也是用栈存储,这样就比较容易理解了。 下面一段代码可以帮助大家理解递归函数的返回值。 1 package test; 2 3
关于Python函数递归深度的问题
最近在做Python函数练习的时候出现了一个问题,递归超过997时Python解释器会报错,具体代码如下: def fact(n): if n == 0: return 1 else: return n * fact(n-1) print(fact(998))报错截图: 百度后才知道,Python默认的递归深度是有限制的,大概900多。解
python函数和递归
注意函数文档,关键字参数,收集参数和默认参数,注意global关键字和nonlocal关键字;注意闭包的概念,巧妙的使用lambda表达式,注意filter()和map()内置函数的使用;递归的概念和步骤
python 递归函数返回值
python递归函数返回值 以下是用递归实现有序数组的二分查找Python代码 def binarysearch(seq, x, lower = 0, upper = None):     if upper == None: upper = len(seq) -  1     middle = (lower + upper) / 2     if x == seq[middle]:  
php递归返回值的问题
我们在使用PHP递归时,会遇到各种各样的问题,其中比较令人苦恼的是有关PHP递归返回值时出现的问题。其实细细想想这是一个很简单的问题。可就是这个简单的问题困扰了半个下午。问题出在递归函数的返回值上。 这是开始写的: 代码如下: function test($i) {        $i -= 4;       if($i        {            r
python函数的返回值
转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944382.html python 函数返回值有两种形式: 1 返回一个值。 2 返回多个值。 现看看返回一个值的吧。 def firstvalue(a,b):     c = a + b     return c print firstvalu
PHP递归返回值的问题
function test($a){ if($a>100){ return $a; } $a++; test($a); } echo test(1);  ##这样可能并不会返回101,无法输出或得到相应的结果 改成 function test($a){ if($a>100){ return $a; } $a++; return test($a);   /
php递归函数return会出现无法正确返回想要值的情况
php递归函数中使用return的时候会碰到无法正确返回想要的值得情况,如果不明白其中的原因,很难找出错误的,就下面的具体例子来说明一下吧:   1 2 3 4 5 6 7 8 9 function test($i){     $i-=4;     if($i         retur