请有人解释为什么我不能得到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)
答案 0 :(得分:3)
您忘记返回递归函数调用的结果:
...
elif char < aStr[len(aStr)/2]:
return isIn(char, aStr[0:mid_val])
else:
return isIn(char, aStr[mid_val::])
...
如果没有此更改,Python将忽略这两个函数调用的返回值,isIn
将始终返回None
,即函数的默认返回值。
答案 1 :(得分:0)
>>> print("a" in "abcdefgh")
True