python函数参数生成器_python函数补充、生成器、迭代器
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域称为局部变量,定义在函数外的拥有全局作用域称为全局变量。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
当全局变量与局部变量同名时,在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用
如果想在全局作用域调用局部变量可以使用global
未声明全局变量之前
声明全局变量之后
注意:虽然python提供这种方法可以从局部作用域中声明全局变量,但是不建议这样使用,全局变量只在全局作用域中定义
嵌套函数
顾名思义,嵌套函数就是指,函数内部套函数
递归
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出,所以递归必须有一个明确的结束条件
高阶函数
变量可以指向函数
变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
把abs作为参数传入sum
匿名函数
当我们在传入函数时,有些时候,不需要显式地定义函数,匿名函数就是不需要显式的指定函数。
第一种函数换成匿名函数的定义方法
关键字lambda表示匿名函数,冒号前面的n表示函数参数。匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数。
列表生成式
列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式
举个例子,要生成list[1,2,3,4,5,6,7,8,9]可以使用list(range(1,10))。
但如果要生成[1x1, 2x2, 3x3, ..., 10x10],可以使用循环,但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list
生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量是有限的。所以,如果列表元素可以按照某种算法推算出来,在Python中,这种一边循环一边计算的机制,称为生成器:generator。
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改为()
生成器(generator)可以通过next()函数获取返回值,或者__next__()内置方法
获取生成器元素的方法
generator保存的是算法,每次调用next(),就会获取下一个元素,直到计算到最后一个元素,没有更多的元素时
StopIteration错误
我们创建了一个generator后,基本上永远不会调用next()而是通过for循环来迭代它,并且不需要关心StopIteration错误,因为generator也是可迭代对象。
第二种方法
这就是定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator,generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
迭代器
可以直接作用于for循环的数据一类是集合数据类型,如list、tuple、dict、set、str等;一类是generator,包括生成器和带yield的generator function,这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象
而可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
python函数参数生成器_python函数补充、生成器、迭代器相关推荐
- python函数参数列表_python函数列表
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python函数函数是python里组织代码的最小单元,python函数包含以下 ...
- python函数参数学习_python函数学习1
函数1 (1)定义: def 函数名(参数列表) 函数体 (2)参数传递: 在python中,一切都是对象,类型也属于对象,变量是没有类型的. a = [1,2,3] a = "hellow ...
- c python 传参数 数组_python函数传递数组参数吗
函数是任何一门编程语言都不可缺少的,而且也是非常重要的一部分.Python中函数的参数,可以分为以下几类: 位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数 ...
- python函数参数定义_Python函数定义及参数详解
函数定义 首先我们来创建一个函数,输出指定范围内的斐波拉契数列(Fibonacci series). #!/usr/bin/env python #coding=utf-8 ''' Created o ...
- python函数参数定义_python函数定义中的5种参数
python函数参数定义 Python函数定义中的5种参数类型: (5 Types of Arguments in Python Function Definition:) default argum ...
- python函数参数列表_python函数的列表参数传递
今天看书的时候发现对python函数的参数传递不是很了解,于是上网查询了一下资料.首先,看一下以下的代码: def default_para_trap(para=[],value=0): para.a ...
- python 函数参数列表_Python 函数可变参数列表*args和**kwargs
许多语言都支持可变参数列表,python也不例外.python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典. 一,元组参数列表: (1)函数定义形式:def func( ...
- python测试函数怎么写_Python - 函数
函数,function,是一段代码的集合体.是Python为了代码最大程度的重用.减小代码冗余而提供的最基本的程序结构. Python是一门面向对象的编程语言,对函数进行分类和封装,由对象实现对方法的 ...
- shell调用python函数 参数 返回_Python之系统shell交互(subprocess)
subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码.这个模块的目的在于替换几个旧的模 ...
- python定义匿名函数关键字_Python(11):Python函数基础(定义函数、函数参数、匿名函数)...
函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. ...
最新文章
- Python for虚幻引擎编辑器工具脚本学习教程
- Django框架(15.Django中的自关联)
- (转)理解MySQL——索引与优化
- 前端开发知识点解答-HTML-面试
- ASP.NET Core和Angular 2双剑合璧
- SpringBoot通过配置文件自动加载到map中
- java 3%3_Java 代码界 3% 的王者?看我是如何解错这 5 道题的
- regester正则用法_Regester学习笔记
- pcl点云库python实现_如何有效地将ROS PointCloud2转换为pcl点云并在python中将其可视化...
- Python并行编程(七):多进程的基本使用和与多线程的差异
- 修改android_server默认调试端口号来反调试
- 从零开始研发GPS接收机连载——3、用HackRF软件无线电平台作为GPS模拟器
- 前端程序员简历模板整理和下载
- TDD测试驱动开发案例【水货】
- 物联网技术体系(一)
- 短时傅里叶变换(Short Time Fourier Transform)
- phpcms 允许英文目录有空格
- ofo的智能锁初代方案:声波频率识别开锁
- IMG2SMI: 将分子图像翻译成SMILES
- 华为服务器管理口在哪个位置,华为服务器默认管理口地址吗