首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >递归二进制搜索Python 3打印解决方案但不返回

递归二进制搜索Python 3打印解决方案但不返回
EN

Stack Overflow用户
提问于 2018-08-19 01:10:28
回答 1查看 28关注 0票数 -1
代码语言:javascript
复制
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,我不知道为什么。有人能解释一下吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-19 01:42:14

代码语言:javascript
复制
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 )) 
'''
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51910933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档