1. 生成器

  

生成器:就是一种自定义的迭代器,是用来返回多次值
自定义迭代器的好处:节省内存 return只能返回一次值,函数就立即结束了
yield
1、可以挂起函数,保存函数的运行状态
2、可以用来返回多次值
例:
def func():
print('')
print('')
print('')
print('')
print('')
yield 1, 2
print('')
yield
print('')
yield 3
print('') yield一次 返回一个值
如何得到生成器(自定义的迭代器):
函数内但凡存在yield关键字,调用函数不会执行函数体代码,会得到一个返回值,该返回值就是我们自定义的生成器
def my_range(start, stop, step=1):
while start < stop:
yield start
start += step # g=my_range(1,5)
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g)) for i in my_range(1,5000):
print(i)

2.  面向过程编程思想

1、编程思想就是编写程序的套路,与具体的技术点无关
2、面向过程
核心是过程二字,过程就是解决问题的步骤,即先干啥、再干啥、后干啥
基于面向过程编程就好比在设计一条条的流水线 优点:将复杂的问题流程化、进而简单化
缺点:所有环节耦合到一起,环环相扣,如果要修改某个环境,有可能会牵一发而动全身,扩展性差

3. 三元表达式

  

def max2(x,y):
if x > y:
return x
else:
return y res=max2(1,2) x=1
y=2 res=x if x > y else y
print(res) res=条件成立时返回的值 if 条件 else 条件不成立时的返回值

4. 生成式的使用

  

1、列表生成式
l=[]
for i in range(11):
if i > 3:
l.append("x")
可以写成:
l = ["x" for i in range(11) if i > 3]

例:

names = ["egon_nb", "lxx_sb", "猴子_sb", "jason_sb"]

l=[]
for name in names:
if name.endswith("sb"): 把结尾为'sb' 的取出
l.append(name) l = [name for name in names if name.endswith("sb")]
names = ["lxx", "猴子", "jason"]
print([name+"_sb" for name in names])
2、字典生成式

dic = {"name": "egon", "age": 18, "gender": "male", "level": 10}

new_dic = {k.upper(): v for k, v in dic.items() if k != "level"}
new_dic = {k+"_": str(v) for k, v in dic.items() if k != "level"}
print(new_dic)
3、集合生成式
s = {i for i in "hello" if i != "l"}
print(s)
4、生成器表达式
res = (i for i in range(5))
print(res) print(next(res))
print(next(res))
print(next(res))
print(next(res))
print(next(res))
print(next(res))



day17 生成器, 面向过程, 三元表达式, 生成式的更多相关文章

  1. python 之 函数 面向过程 三元表达式 函数递归

    5.11 面向过程编程思想 核心是'过程'二字,过程即解决问题的步骤,即先干什么,再干什么........ 基于面向过程编写程序就好比在设计一条流水线,是一种机械式的思维方式. 总结优缺点: 优点:复 ...

  2. Python 迭代器-生成器-面向过程编程

    上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规 ...

  3. day14 迭代器 生成器 面向过程思想

    "" 迭代器 什么是迭代器(iterator) 器指的某种工具, 迭代指的是更新换代的过程,例如应用程序的版本更新从1.0 变成 1.1 再1.2 迭代的目的是要根据上一个结果,产 ...

  4. 函数---迭代器&生成器&列表解析&三元表达式

    可迭代对象:obj.__iter__   迭代器:iter1=obj.__iter() 1iter1.__next__ 2iter2.__next__   迭代器: 优点:不依赖索引         ...

  5. python基础--递归、三元表达式、列表(字典)生成式、匿名函数、常用的内置函数

    函数的递归:函数在调用阶段直接或者间接的又调用自身 递归的两个阶段: 1.回溯:就是一次次重复的过程,这个重复的过程必须建立在每一次重复问题的复杂度都是应该下降的,直接有一个最终的结束条件(这个结束条 ...

  6. python基础语法9 生成器,面向对象编程思想,三元表达式,列表生成式,生成器表达式(生成式),匿名函数,内置函数

    生成器 1.什么是生成器? 生成的工具. 生成器是一个 "自定义" 的迭代器, 本质上是一个迭代器. 2.如何实现生成器 但凡在函数内部定义了的yield, 调用函数时,函数体代码 ...

  7. day13-迭代器、三元表达式、列表推导式、字典生成式、生成器与递归

    目录 迭代器 可迭代对象 迭代器对象 for循环原理 三元表达式(三目表达式) 列表推导式 字典生成式 zip()方法 生成器 生成器表达式 递归 递归的两个阶段 迭代器 迭代器即迭代的工具,迭代是一 ...

  8. Python开发基础-Day9-生成器、三元表达式、列表生成式、生成器表达式

    生成器 生成器函数:函数体内包含有yield关键字,该函数执行的结果是生成器,生成器在本质上就是迭代器. def foo(): print('first------>') yield 1 pri ...

  9. Python基础(9)_生成器(yield表达式形式)、面向过程编程

    一.yield表达式形式 1 #装饰器,初始化含yield表达式的生成器 def init(func): def wrapper(*args,**kwargs): g=func(*args,**kwa ...

随机推荐

  1. Java实现圆柱体表面积和体积的计算

    题目描述: Java编程实现圆柱体表面积和体积的计算,要求从键盘上输入圆的半径和高,然后输出结果. 题目分析: 首先定义Circle类,然后在main方法中创建Circle类的对象c,利用对象c访问其 ...

  2. DedeCms 首页、列表页调用文章body内容的方法

    [第一种方法] arclist标签使用如下: {dede:arclist row='1' typeid='1' addfields='body' idlist='1' channelid='1'} [ ...

  3. easypoi 读取 Excel 简单应用

    背景 在做接口测试的时候,经常会使用 Excel 来存储对应的接口信息和用例信息,为了方便程序的读取,引入easypoi 工具来读取 Excel 内容.easypoi 比起 poi 使用更加的方便,代 ...

  4. DML_Data Modification_INSERT

    Data Modification (INSERT.DELETE.UPDATE.MERGE)之INSERT(基础知识,算是20年来第2次学习MSSQL吧,2005年折腾过一段时间的Oracle)INS ...

  5. Tensorflow从0到1(4)之神经网络

    一维数据集上的神经网络 # 1 引入包,创建会话 import tensorflow as tf import numpy as np sess = tf.Session() # 2 初始化数据 da ...

  6. 【JMeter_08】JMeter逻辑控制器__While控制器<While Controller>

    While控制器<While Controller> 业务逻辑: 当条件为非false时,执行该节点下的脚本内容,判断条件包括数字.null.空白.字母.符号.true. 当条件为fals ...

  7. 商城02——dubbo框架整合_商品列表查询实现_分页

    1.   课程计划 1.服务中间件dubbo 2.SSM框架整合. 3.测试使用dubbo 4.后台系统商品列表查询功能实现. 5.监控中心的搭建 2.   功能分析 2.1. 后台系统所用的技术 框 ...

  8. cb27a_c++_STL_算法_最小值和最大值

    cb27a_c++_STL_算法_最小值和最大值min_element(b,e) b--begin(), e--end()min_element(b,e,op). op:函数,函数对象,一元谓词.ma ...

  9. PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

    Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...

  10. [转]IP地址和MAV地址——区别和联系

    [转载]http://wenda.tianya.cn/question/27f9476d1e86f6b6 一.IP地址  对于IP地址,相信大家都很熟悉,即指使用TCP/IP协议指定给主机的32位地址 ...