python_函数进阶3

h3 { background: #4A708B; color: #fff; width: 400px; text-align: center }

一、生成器

1、自己用python代码写的迭代器,生成器的本质就是迭代器

2、def fun():

    print(111)
    yield ‘aa‘

    print(222)

y = fun()  #生成器函数的对象

print(y.__next__)   #111,aa  __next__取值

3、yield不会结束函数,一个next对应一个yield,yield将值返回给对象

4、生成器直接创建,不需要转化,从本质就节省内存

5、send  yield

  send与next一样,也是对生成器取值(执行一个yield方法)

  send可以给上一个yield传值

  第一次取值永远是next

  最后一个yield永远也得不到send传的值

二、列表推导式

1、循环模式

  l = [i for i in range(100)]

2、筛选模式

  l2 = [i for i in range(100) if i %2==0]

3、优点:一行解决,方便

   缺点:不易排错,不能超过三次循环

4、生成器表达式

  将列表推导式[]换成()即可

5、字典推导式

  dic = [‘a‘:10,‘b‘:20]

  ite = (dic[k]:k for k in dic)

原文地址:https://www.cnblogs.com/echo-up/p/9506510.html

时间: 2024-10-07 03:41:02

python_函数进阶3的相关文章

python_函数进阶(5)

第1章 函数有用信息1.1 login.__doc__1.2 login.__name__第2章 装饰器的进阶2.1 带参数的装饰器2.2 多个装饰器装饰一个函数2.3 开放封闭原则 第3章 可迭代对象 3.1 判断对象方法dir()3.2 通俗测试方法:3.3 方法1:'__iter__' in dir(list)3.4 方法2:isinstance第4章 迭代器 4.1 定义 4.2 迭代器转换 4.2.1 判断方法1 4.2.2 判断方法2: 4.3 转换成迭代器的优势4.4 模拟for循

Android.mk (2) 函数进阶教程 - 分支、循环、子程序

https://www.jianshu.com/p/674dc7d7b4b0 函数进阶教程 - 分支.循环.子程序 按照面向过程程序设计的标准流程,我们讲完了顺序结构,就要讲分支.循环和子程序.下面我们就开始讲用于分支.循环和子程序调用功能的函数. 分支函数 要走分支,一定是要有条件要判断. 在Makefile里,最主要的判断就是看字符串能不能找到了. 通过findstring函数来进行这个判断,然后用if函数使用findstring函数的结果. 例: .PHONY : all5 bootoat

Python 全栈开发:python函数进阶

python函数进阶 函数嵌套 函数对象 命名空间与作用域 闭包函数 装饰器 一.函数嵌套 函数的嵌套定义 def func1(): print('from func1') def func2(): #func2=内存地址 print('from func2') print(func2) func1() 函数的嵌套调用 # 比较两个数的大小 def max2(x,y): if x > y: return x else: return y # 比较三个数的大小 def max3(x,y,z): r

python大法好——递归、内置函数、函数进阶

1.递归(自己干自己) def fun(n): n=n/2 print(n) if(n>2) fun(n) #函数调用 fun(10) 结果是5 2 1 0 递归的执行过程:递归执行到最里面一层,外面的层还没有结束,所以由内而外结束. 证明: def fun(n): n=n/2 print(n) if(n>2) fun(n) print(n) #函数调用 fun(10) 结果是 0 1 2 5 递归获取最后一个值: def calc(n,count): print(n,count) if co

生成器函数进阶

1.生成器函数进阶(一) 1 # 生成器函数进阶 2 3 def generator(): 4 print(123) 5 num = yield 1 # 当第一个__next__发生时,yiled 1先被执行,被返回,停在了这里,之后当send来了后,send的参数先赋值给了yield的左值,之后再执行下一个yield之前的代码 6 # send()获取yield值之前,会给上一个yield的位置传递一个参数数据,这个数据可以被上一个yield的左值接收 7 # 使用生成器的send()方法,就

函数—函数进阶(二)

函数-函数进阶(二) 函数-函数进阶-列表生成式 1 #列表回顾 2 name = [2,5,7,9,4] 3 print(name) 4 for i in name: 5 print(i) 6 #结果为: 7 # [2, 5, 7, 9, 4] 8 # 2 9 # 5 10 # 7 11 # 9 12 # 4 13 14 #枚举 15 for index,i in enumerate(name): 16 print(index,i) 17 #结果为: 18 # 0 2 19 # 1 5 20

No-12.函数进阶

函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值

~~函数进阶(一):装饰器~~

进击のpython 函数进阶-装饰器 知道京东吧(不知道?那你知道淘宝,蘑菇街吧) 我们身为用户,在进入界面的时候 首先会提示我们登陆是吧 当我们登陆的时候,接下来的所有操作就不用再验证身份了 否则,一到收藏啊,关注啊,就需要我们重新登陆 那我们可不可以做一个这个呢?? 没有数据库,我们模拟一个数据库,懂我意思吧! DB = { "login": False, "user_name": "poddy", "password":

python基础_函数进阶

函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值