递归

例如:

def abc(n):
print(n)
if int(n/2) == 0:
return n
return abc(int(n/2)) abc(10)

运行结果:

10
5
2
1 Process finished with exit code 0

2.小程序实例

import  time
people_list =['小明','小红','小刚','小王','小青'] def ask(people_list): if len(people_list) == 0:
return '我不知道' people = people_list.pop(0) # 从列表里删除一个人,把值给people if people == '小王':
print('hi %s,我的东西在你那吧' % people) # 不加这句 会直接跳出下面那句,自我感觉不太好。主要还是看递归的方法吧
return '%s说:在我家,嘿嘿' % people print('hi %s,我的东西在你那吧'%people)
print('%s说:我不知道,我问一下别人%s'%(people,people_list))
time.sleep(2)
res = ask(people_list)
return res res = ask(people_list)
print(res)

运行结果:

hi 小明,我的东西在你那吧
小明说:我不知道,我问一下别人['小红', '小刚', '小王', '小青']
hi 小红,我的东西在你那吧
小红说:我不知道,我问一下别人['小刚', '小王', '小青']
hi 小刚,我的东西在你那吧
小刚说:我不知道,我问一下别人['小王', '小青']
hi 小王,我的东西在你那吧
小王说:在我家,嘿嘿 Process finished with exit code 0

python学习-25 函数递归的更多相关文章

  1. python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程

    python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...

  2. python学习8—函数之高阶函数与内置函数

    python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...

  3. Python学习笔记—函数

    函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...

  4. Python学习笔记 - 函数参数

    >>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...

  5. 从0开始的Python学习007函数&函数柯里化

    简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...

  6. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  7. Python学习之函数参数

    上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...

  8. 04 python学习笔记-函数、函数参数和返回值(四)

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定 ...

  9. Python开发【第一篇】Python基础之函数递归

    函数递归 递归的本质: 就是一个函数调用另外一个函数. def d(): return '123' def c(): r = d() return r def b(): r = c() return ...

随机推荐

  1. 搭建docusaurus博客

    搭建docusaurus博客: docusaurus是facebook的开源的用于简化构建,部署,和维护的博客网站. 特点: 快速启动 支持本地化 页面可自定义 安装要求: Node >= 8. ...

  2. class与computed一起应用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Metaspace 之二--PermGen vs. Metaspace 运行时比较

    PermGen vs. Metaspace 运行时比较 为了更好地理解Metaspace内存空间的运行时行为, 将进行以下几种场景的测试: 使用JDK1.7运行Java程序,监控并耗尽默认设定的85M ...

  4. Navicat Premium 12安装与激活(亲测已成功激活)

    说明:博主所提供的激活文件理论支持Navicat Premium 12.0.16 - 12.0.24简体中文64位,但已测试的版本为Navicat Premium 12.0.22.12.0.23和12 ...

  5. OpenJudge计算概论-整数的个数

    /*========================================================== 整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定 ...

  6. VS Code 使用技巧[转载]

    原文:VS Code 快捷键(VS Code Shortcuts.pdf) 常用 General 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show ...

  7. keras损失函数

    keras文档:  http://keras.io/objectives/ mean_squared_error / mse  均方误差,常用的目标函数,公式为((y_pred-y_true)**2) ...

  8. List的remove()方法的三种正确打开方式

    转: java编程:List的remove()方法的三种正确打开方式! 2018年08月12日 16:26:13 Aries9986 阅读数 2728更多 分类专栏: leetcode刷题   版权声 ...

  9. ifc tree

    ViewerWidget* viewerWidget = new ViewerWidget(ifcModel); viewerWidget ->setRootNode(ifcModel-> ...

  10. Mongo查询百万级数据性能问题及JAVA优化问题

    Mongo查询百万级数据  使用分页  skip和limit 效率会相当慢   那么怎么解决呢  上代码 全部查询数据也会特别慢 Criteria criteria = new Criteria(); ...