PythonDay12
day12内置_函数
今日内容
生成器
推导式
内置函数一
生成器
什么是生成器?生成器的本质就是一个迭代器
迭代器是python自带的
生成器是程序员自己写的一种迭代器
生成器编写方式:
1.基于函数编写
2.推导式方式编写
def func():
print('这是一个函数')
return '函数'
func()
def func():
print("这是一个生成器")
yield '生成器'
# 坑!!!,其实这个生成器只能执行一个next,因为只有一个yield
func() # 生成一个生成器
print(func().__next__()) # 启动生成器
print(func().__next__())
# 上方这句代码的意思是:创建一个生成器并且执行一个next方法,两句一样但互不相干
函数体中出现yield代表要声明一个生成器
def func():
msg = input("请输入内容")
yield msg
print("这是第二次启动")
yield "生成器2"
yield "生成器3"
yield "生成器4"
g = func()
print(next(g))
print(next(g))
print(next(g))
print(next(g)) # 不能超过yield次数
yield和return的区别
相同点:
都是返回内容
都可以返回多次,但是return写多个只会执行一个
不同点:
return终止函数 yield是暂停生成器
yield能够记录当前执行位置
一个yield对应一个next
生成器的作用
# 生成器的作用是节省空间
# 可迭代对象:
# 优点: list,tuple,str 节省时间,取值方便,使用灵活(具有自己私有方法)
# 缺点: 大量消耗内存
# 迭代器:
# 优点:节省空间
# 缺点:不能直接查看值,使用不灵活,消耗时间,一次性,不可逆行
# 生成器:
# 优点:节省空间,人为定义
# 缺点:不能直接查看值,消耗时间,一次性,不可逆行
# 使用场景:
# 1.当文件或容器中数据量较大时,建议使用生成器
# 数据类型 (pyhton3: range() | python2 :xrange()) 都是可迭代对象 __iter__()
# 文件句柄是迭代器 __iter__() __next__()
没有send方法就是一个迭代器,具有send方法的就是一个生成器
def func():
lst = [1,2,3,45,6]
lst1 = ["alex","wusir","taibi","baoyuan"]
yield from lst
yield from lst1
# yield 将可迭代对象一次性返回
# yield from 将可迭代对象逐个返回
g = func()
for i in g:
print(i)
推导式
列表推导式:
普通循环
print([i for i in range(10)])
print([变量 for循环])
筛选
lst = []
print([i for i in range(10) if i % 2 == 0])
print([i for i in range(10) if i > 2])
[操作后的变量 for循环 判断操作]
集合推导式:
普通循环
print({i for i in range(10)})
{变量 for循环}
筛选
print({i for i in range(10) if i % 2 == 1})
{操作后的变量 for循环 操作}
字典推导式:
普通循环
print({i: i+1 for i in range(10)})
{键:值 for循环}
筛选模式
print({i:i+1 for i in range(10) if i % 2 == 0})
{操作的键:值 for循环 操作}
生成器推导式:
普通模式
tu = (i for i in range(10))
(变量 for循环)
筛选模式
tu = (i for i in range(10) if i > 5)
(操作后的变量 for循环 操作)
内置函数一
all() 判断容器中的元素是否都为真
any() 判断容器中的元素是否有一个为真
bytes() 将字符串进行编码
callable() 查看对象是否可 调用 == ()
chr() 通过表位序号查找元素
complex() 复数
eval() 神器一
exec() 神器二 神器禁止使用
frozenset() 冻结集合
globals() 查看全局空间变量
hash() 区分可变数据类型和不可变数据类型
help() 查看帮助信息
id() 查看内存地址
locals() 查看当前空间变量
oct() 十进制转八进制
ord() 通过元素获取当前unicode表位的序号
pow() 幂,两个参数是求幂,三个参数时求幂后在取余
repr() 查看数据的原生态
round() 保留小数位
divmod() 求商和余
bin() 十进制转二进制
PythonDay12的更多相关文章
- Python-Day12 Python mysql and ORM
一.Mysql数据库 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据 ...
- Python--day12(三元表达式、函数对象、名称空间与作用域、函数嵌套定义)
今日主要内容 1. 函数默认值细节(*) 2. 数据类型补充:三元表达式.列表推导式.字典推导式 (***) 3. 函数对象:函数名的各种应用场景 (*****) 4. 名称空间与作用域:解释 ...
- python-day12 MySQL、sqlalchemy
@第一节上周回顾没看 @博客day11 https://www.cnblogs.com/alex3714/articles/5950372.html @InnoDB,是MySQL的数据库引擎之一 @S ...
- 路飞学城Python-Day12(practise)
# 函数基础# 1.写函数,计算传入数字参数的和(动态传参)# def sum_num(x,y):# return x+y# print(sum_num(1,2))# 2.写函数,用户传入修改的文件名 ...
- 路飞学城Python-Day12
7月10日安排 完成所有函数作业和思维导图整理 [45.函数-生成器] 如果数据是有规律的,就可以先生成一个数据,等数据执行的时候再执行,也就是在真正调用数据之前,拿到数据的生成规律,而是拿到生 ...
- python-day12(正式学习)
目录 可变长参数 可变长形参之* 可变长实参之* 可变长形参之** 可变长实参之** 可变长参数应用 命名关键字形参 函数对象 四大功能 引用 当作参数传给一个函数 可以当作函数的返回值 可以当作容器 ...
- 初学Python-day12 装饰器函数
装饰器 1.概念 本质就是一个Python函数,其他函数在本身不变的情况下去增加额外的功能,装饰器的返回值是一个函数. 常用的场景:插入日志,事务处理,缓存,权限校验等. 2.普通函数回顾 1 def ...
随机推荐
- [CF1172E]Nauuo and ODT:Link-Cut Tree
分析 lxl大毒瘤. 感谢Ouuan等CNOIER提供了这么好的比赛. 这里只是把官方题解复述一遍,可以直接去看官方题解:点我. 考虑将问题转化为对于每个颜色,求出没有经过这个颜色的节点的路径有多少条 ...
- DVWA--Brute Force
这次我们尝试的内容是DVWA的暴力破解 --lower 先抓取一个登陆的包 然后发送到后在Position选项中设置需要破解的变量.Burpsuite会自动设置许多变量,单击“Clear”按钮,把默认 ...
- 国内著名的vue-element-admin-layout框架的使用
vue-element-admin-layout 是一个后台前端解决方案,它基于 vue 和 element-ui实现.它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提 ...
- 20道HTML基础面试题(附答案)
以下是我整理的一些HTML的基础面试体,并自己整理了答案. 1 DOCTYPE有什么作用?标准模式与混杂模式如何区分?它们有何意义? 告诉浏览器使用哪个版本的HTML规范来渲染文档.DOCTYPE不存 ...
- java中的基本数据类型简谈
在java里面有八大基本的数据类型,分别是 byte,short,char,int,long,float,double,boolean 然后需要说的就是几个特殊的基本数据类型的取值范围 先来说说byt ...
- spring整合之后运行报什么只读错误。Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
解决办法, 再大dao的实现类上添加注解: @Transactional(readOnly = false ) 不让它只读就行了
- AJAX请求和普通HTTP请求区别
两者本质区别: AJAX通xmlHttpRequest象请求服务器服务器接受请求返数据实现刷新交互 普通http请求通httpRequest象请求服务器接受请求返数据需要页面刷新 AJAX请求 普通请 ...
- 了解一下urlencode()函数
urlencode()函数 在PHP官方网站中的解释如下: 编码 URL 字符串——就是对特殊字符进行编码转移(. _ - 除外): string urlencode ( string $str ...
- 如何在form组件中添加一个单选或者多选的字段
解决办法: 需要在增加的类里面加入choices 具体操作如下:
- Android内存Activity泄露:Handler与Threads
Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收.也就是说,一个对象不被任何引用所指向,则该对象会在被 ...