def binarySearch( a, l, r, num ):
m = (l+r) // 2
if l < r:
if num <= a[m]:
binarySearch(a, l, m, num)
else:
binarySearch(a, m+1, r, num)
else:
print( m )
如果不是print(m),而是return(m),然后尝试打印函数,它将返回None,我不知道为什么。有人能解释一下吗?谢谢
发布于 2018-08-19 01:42:14
def binarySearch( a, l, r, num ):
m = (l+r) // 2
if l < r:
if num == a[m]:
return m
elif num < a[m]:
return binarySearch(a, l, m, num)
else:
return binarySearch(a, m+1, r, num)
else:
return -1
# If return statement with the thing that need to be return is not mentioned explicitly by default we get None
'''
--tested using
for i in range(0,8):
print('result for item', i ,binarySearch( [0,1,2,5,7], 0, 5,i ))
'''
https://stackoverflow.com/questions/51910933
复制相似问题