位置: 编程技术 - 正文

深入理解python函数递归和生成器(python的了解)

编辑:rootadmin

推荐整理分享深入理解python函数递归和生成器(python的了解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python的了解,深入理解python特性,深入理解python特性pdf百度云,python函数详解,怎么理解python,深入python3,深入理解python特性 pdf,python的理解,内容如对您有帮助,希望把文章链接给更多的朋友!

一、什么是递归

如果函数包含了对其自身的调用,该函数就是递归的。递归做为一种算法在程序设计语言中广泛应用,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。例如,要计算1-9的9位数字的乘积,直观的算法是1*2*3*4*5*6*7*8*9,如果要计算1-的乘积,直观的算法就难于实现出,而递归就可以很简单的实现。请看示例:

结果为:

下面我们用示例来看看递归的执行过程:

结果为:

再看这一个示例:

结果为:

二、生成器

深入理解python函数递归和生成器(python的了解)

生成器是一个带 yield 语句的函数。一个函数或者子 程序只返回一次,但一个生成器能暂停执行并返回一个中间的结果,返 回一个值给调用者并暂停执行。当生成器的 next()方法被调用的时候,它会准确地从离开地方继续

下面看示例:

结果为:

由于 python 的 for 循环有 next()调用和对 StopIteration 的处理, 使用一个 for 循环而不是手 动迭代穿过一个生成器(或者那种事物的迭代器)总是要简洁漂亮得多。例:

结果同前面相同。

这些简单的例子应该让你有点明白生成器是如何工作的。除了 next()来获得下个生成的值,用户 可以将值回送给生成器[send()],在生成器中抛出异常,以及要求生成器退出[close()]

下面是一个展示了这些特性的,简单的例子。

生成器带有一个初始化的值,对每次对生成器[next()]调用以 1 累加计数。用户已可以选择重 置这个值,如果他们非常想要用新的值来调用 send()不是调用 next()。这个生成器是永远运行的,所以如果你想要终结它,调用 close()方法。如果我们交互的运行这段代码,会得到如下输出:

以上这篇深入理解python函数递归和生成器就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

深入浅析python定时杀进程 之前写了个python脚本用selenium+phantomjs爬新帖子,在循环拉取页面的过程中,phantomjs总是block住,使用WebDriverWait设置最长等待时间无效。用firefox替换phantom

Python的socket模块源码中的一些实现要点分析 BaseServer和BaseRequestHandlerPython为网络编程提高了更高级的封装。SocketServer.py提供了不少网络服务的类。它们的设计很优雅。Python把网络服务抽象成两个主

在Python程序和Flask框架中使用SQLAlchemy的教程 ORM江湖曾几何时,程序员因为惧怕SQL而在开发的时候小心翼翼的写着sql,心中总是少不了恐慌,万一不小心sql语句出错,搞坏了数据库怎么办?又或者

标签: python的了解

本文链接地址:https://www.jiuchutong.com/biancheng/387577.html 转载请保留说明!

上一篇:python下调用pytesseract识别某网站验证码的实现方法(python调用ch)

下一篇:深入浅析python定时杀进程(python定制函数)

  • 土地增值税的扣除项目包括哪几项
  • 个人住房5年后买卖如何交税?
  • 交所得税用计提吗
  • 车票增值税抵扣如何申报
  • 交易性金融资产是什么意思
  • 厂里搬厂赔偿员工标准
  • 没开发票的收入可以不入账吗
  • 利税总额是应交还是已交
  • 怎么把原材料转为成本
  • 退货或者销毁处理
  • 出口货物未报关
  • 注册资本变更增加意味着什么
  • 以股权转让名义转让土地使用权
  • 工资分两次发的风险是什么?
  • 2019一般纳税人租赁费税率
  • 小规模申报个税手续费返还在哪填写信息
  • 提现属于支出吗
  • 查账征收的个体户注销流程
  • 华为手机蓝牙传送照片到苹果手机
  • 路由器突然不能上网了显示红灯
  • 设备的折旧率是什么意思
  • 对外投资收益要交税吗
  • 支付境外特许权许可使用费资料
  • 进项票少了怎么办
  • 什么是BIOS设置界面
  • php怎么启动
  • 鸿蒙系统怎么设置双击亮屏
  • 商业企业低值易耗品科目核算的内容
  • 哪些企业需进行预算管理
  • 用php做一个表格
  • 银装素裹的意思和造句
  • 聘用退休人员的法律风险
  • 暂估增值税可以抵扣吗
  • 增值税专用发票丢了怎么补救
  • 定额发票丢失了怎么补办
  • 记账凭证和收付账簿区别
  • php处理接收的xml
  • js防抖节流的区别和使用场景
  • 传统结算工具的不足有
  • 华为mate主题
  • 分公司可以开基本账户吗
  • 会计实务中的计提是什么意思
  • 生产企业出口转内销增值税申报表怎么填
  • 个人所得税汇算清缴
  • 金蝶建账初始数据修改
  • 借款利息税前扣除应当注意的三个问题
  • 换下来的旧电池还有用吗
  • 贷款利息收入如何核算
  • 进项税额抵扣如何做账
  • 房地产项目完工清算报告
  • 个人如何开增值税普通电子发票
  • 股东变更实收资本变更吗
  • 软件续费应记什么科目
  • 银行存款的收付应严格执行()的规定
  • 小微企业减免附加税税率
  • 负数发票跨月怎么作废
  • 本年收益属于什么科目
  • 动产不动产租赁增值税税率
  • 在linux操作系统中,/etc/rc.d/init.d
  • centos bond mode
  • freebsd做服务器
  • solaris 查看进程
  • 无人值守工厂
  • linux源码安装软件的方法介绍
  • win10取消uac
  • 深入理解中国式现代化
  • javascript prototype inheritence
  • nodejs cgi
  • java多线程用法
  • php和mysql的结合是目前web开发中的黄金组合
  • scrapy—redis
  • unity图集作用
  • install ubuntu kylin
  • python开发的程序
  • js中生成随机数
  • python脚本运行命令
  • Python文本相似性计算之编辑距离详解
  • Python安装whl文件
  • 锂电池缴纳消费增值税吗
  • 季度财务会计报告怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设