Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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 Can';我不懂递归_Python_Recursion - Fatal编程技术网

Python Can';我不懂递归

Python Can';我不懂递归,python,recursion,Python,Recursion,请有人解释一下为什么我不能得到True作为答案。我做了最后一个动作,但没有回头 a= 'abcdefghijklmnopqrstuvwxyz' def isIn(char, aStr): mid_val = len(aStr) / 2 if char == aStr[mid_val]: return True elif char < aStr[mid_val]: isIn(char, aStr[:mid_val]) else

请有人解释一下为什么我不能得到
True
作为答案。我做了最后一个动作,但没有回头

a= 'abcdefghijklmnopqrstuvwxyz'

def isIn(char, aStr):
    mid_val = len(aStr) / 2
    if char == aStr[mid_val]:
        return True
    elif char < aStr[mid_val]:
        isIn(char, aStr[:mid_val])
    else:
        isIn(char, aStr[mid_val:])


print isIn('w',a)
a='abcdefghijklmnopqrstuvxyz'
def isIn(字符、aStr):
中段=len(应科院)/2
如果char==aStr[mid_val]:
返回真值
elif char
您忘记返回递归函数调用的结果:

...
elif char < aStr[len(aStr)/2]:
    return isIn(char, aStr[0:mid_val])
else:
    return isIn(char, aStr[mid_val::])
...
。。。
elif char

如果不进行此更改,Python将忽略这两个函数调用的返回值,
isIn
将始终返回函数的默认返回值
None

顺便说一句,您不需要函数

>>> print("a" in "abcdefgh")
True

我已经冒昧地更改了您的代码,以便更多地使用
mid\val
,并且更具python风格。你可能想回顾这些变化以获得启示。我知道如何用另一种方法解决这个问题,但我用这种方法练习递归。