全局变量和局部变量

定义在函数内部的变量拥有一个局部作用域称为局部变量,定义在函数外的拥有全局作用域称为全局变量。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。

当全局变量与局部变量同名时,在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用

如果想在全局作用域调用局部变量可以使用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函数补充、生成器、迭代器相关推荐

  1. python函数参数列表_python函数列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python函数函数是python里组织代码的最小单元,python函数包含以下 ...

  2. python函数参数学习_python函数学习1

    函数1 (1)定义: def 函数名(参数列表) 函数体 (2)参数传递: 在python中,一切都是对象,类型也属于对象,变量是没有类型的. a = [1,2,3] a = "hellow ...

  3. c python 传参数 数组_python函数传递数组参数吗

    函数是任何一门编程语言都不可缺少的,而且也是非常重要的一部分.Python中函数的参数,可以分为以下几类: 位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数 ...

  4. python函数参数定义_Python函数定义及参数详解

    函数定义 首先我们来创建一个函数,输出指定范围内的斐波拉契数列(Fibonacci series). #!/usr/bin/env python #coding=utf-8 ''' Created o ...

  5. python函数参数定义_python函数定义中的5种参数

    python函数参数定义 Python函数定义中的5种参数类型: (5 Types of Arguments in Python Function Definition:) default argum ...

  6. python函数参数列表_python函数的列表参数传递

    今天看书的时候发现对python函数的参数传递不是很了解,于是上网查询了一下资料.首先,看一下以下的代码: def default_para_trap(para=[],value=0): para.a ...

  7. python 函数参数列表_Python 函数可变参数列表*args和**kwargs

    许多语言都支持可变参数列表,python也不例外.python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典. 一,元组参数列表: (1)函数定义形式:def func( ...

  8. python测试函数怎么写_Python - 函数

    函数,function,是一段代码的集合体.是Python为了代码最大程度的重用.减小代码冗余而提供的最基本的程序结构. Python是一门面向对象的编程语言,对函数进行分类和封装,由对象实现对方法的 ...

  9. shell调用python函数 参数 返回_Python之系统shell交互(subprocess)

    subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码.这个模块的目的在于替换几个旧的模 ...

  10. python定义匿名函数关键字_Python(11):Python函数基础(定义函数、函数参数、匿名函数)...

     函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. ...

最新文章

  1. Python for虚幻引擎编辑器工具脚本学习教程
  2. Django框架(15.Django中的自关联)
  3. (转)理解MySQL——索引与优化
  4. 前端开发知识点解答-HTML-面试
  5. ASP.NET Core和Angular 2双剑合璧
  6. SpringBoot通过配置文件自动加载到map中
  7. java 3%3_Java 代码界 3% 的王者?看我是如何解错这 5 道题的
  8. regester正则用法_Regester学习笔记
  9. pcl点云库python实现_如何有效地将ROS PointCloud2转换为pcl点云并在python中将其可视化...
  10. Python并行编程(七):多进程的基本使用和与多线程的差异
  11. 修改android_server默认调试端口号来反调试
  12. 从零开始研发GPS接收机连载——3、用HackRF软件无线电平台作为GPS模拟器
  13. 前端程序员简历模板整理和下载
  14. TDD测试驱动开发案例【水货】
  15. 物联网技术体系(一)
  16. 短时傅里叶变换(Short Time Fourier Transform)
  17. phpcms 允许英文目录有空格
  18. ofo的智能锁初代方案:声波频率识别开锁
  19. IMG2SMI: 将分子图像翻译成SMILES
  20. 华为服务器管理口在哪个位置,华为服务器默认管理口地址吗

热门文章

  1. Sublime Text 模板插件SublimeTmpl
  2. Spanning-Tree Portfast
  3. sourceTree外部工具解决冲突
  4. 关于深度学习caffe for Windows编译入门
  5. [转]使用Hyper-V BPA(Best Practices Analyzer-最佳化分析工具)
  6. DDoSCoin:加密货币奖励用户参与 DDoS 攻击
  7. C语言 二级指针内存模型②
  8. 面向对象编程(十)——继承之Super关键字及内存分析
  9. typedef NS_ENUM 等枚举介绍
  10. 远程团队开发10个热门的项目管理软件