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风格。你可能想回顾这些变化以获得启示。我知道如何用另一种方法解决这个问题,但我用这种方法练习递归。