python 递归函数返回值
来源:互联网 发布:linux进程崩溃 编辑:程序博客网 时间:2024/05/17 21:42
python递归函数返回值
以下是用递归实现有序数组的二分查找Python代码
def binarysearch(seq, x, lower = 0, upper = None):
if upper == None: upper = len(seq) - 1
middle = (lower + upper) / 2
if x == seq[middle]:
return middle
elif x > seq[middle]:
lower = middle + 1
else:
upper = middle - 1
if upper < lower:
print x, 'is not in', seq
return
return binarysearch(seq, x, lower, upper) #此处必须加上return,否则函数总是返回None
if __name__ == '__main__':
seq = [34, 67, 8, 123, 4, 100, 95]
seq.sort()
y = binarysearch(seq, 34)
print y
递归过程:
第一次调用binarysearch函数 ——> 第二次调用binarysearch函数——> ...... ——> 第n次调用binarysearch函数
|
将return返回值返回第1次调用的binarysearch函数<——将return返回值返回第n-2次调用的binarysearch函数 <—— 将return返回值返回第n-1次调用的binarysearch函数
调用binarysearch函数,其最终的返回值就是第一次调用binarysearch函数的返回值,如果上述代码中不加标红的return关键字,第一次调用的binarysearch函数永远都是返回None
- python 递归函数返回值
- python学习——函数返回值及递归
- python函数返回值
- Python 函数返回值
- Python的函数返回值
- python 函数返回值问题
- python函数的返回值
- python函数作为返回值
- PYthon 函数-递归函数
- python 函数递归 尾递归
- python学习~递归函数
- Python 递归函数
- Python 递归函数
- Python--递归函数
- python-递归函数.汉诺塔.
- PYTHON 递归函数
- Python 递归函数
- **PYTHON**递归函数
- C++设计模式[一]工厂模式
- oracle 多表查询
- slf4j 与log4j 日志管理
- 解决Typecho Gravatar头像无法加载的问题
- 鸟哥的Linux私房菜(基础篇)- 第十七章、程序管理与 SELinux 初探
- python 递归函数返回值
- oracle 多行函数
- 译文:理解Java中的弱引用
- linux下系统调用劫持ioctl
- elasticsearch搭建
- 过滤和排序
- OpenGL学习资料汇总
- 个人博客搭建小记
- monkey用法