0
我有在Python蟒蛇回报没有,而不是真/假
使用二进制搜索计划1搜索两个方案:
def bin(alist,x):
if len(alist)==0:
return False
else:
mid=len(alist)//2
if (alist[mid]==x):
return True
else:
if alist[mid] < x:
#print(alist[mid+1:],x)
bin(alist[mid+1:],x)
else:
#print(alist[:mid],x)
bin(alist[:mid],x)
print (bin([2,3,5,8,9],8))
print (bin([2,3,5,8,9],7))
程序输出:
None
None
方案2:
def bin(alist,x):
if len(alist)==0:
return False
else:
mid=len(alist)//2
if (alist[mid]==x):
return True
else:
if alist[mid]<x:
return bin(alist[mid+1:],x)
else:
return bin(alist[:mid],x)
print(bin([1,5,7,8,9],10))
print(bin([1,4,5,8,9],8))
程序输出:
False
True
为什么会这样呢?
几天前我回答了同样的问题!必须来自同一本教科书! – d9ngle
你在程序2中有'return' – haifzhan
'return'只返回调用栈上一级的值。如果你想发送多个函数调用的值,每个函数都需要显式返回值。 – user2357112