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 ...
随机推荐
- hdu_2159(二维费用背包)
HDU_2159 二维费用背包问题 http://acm.hdu.edu.cn/showproblem.php?pid=2159 #include<cstdio> #include< ...
- JavaWeb-SpringBoot_使用MySQL数据库实现用户管理_demo
使用Gradle编译项目 传送门 项目已托管到Github上 传送门 SpringBoot使用MySQL实现 实现功能:普通用户注册.普通用户登录.管理员通过edit-user页面和show-all- ...
- [CSP-S模拟测试]:小Y的图(最小生成树+LCA)
题目传送门(内部题131) 输入格式 第一行三个整数$n$.$m$和$Q$. 接下来$m$行每行三个整数$x$.$y$.$z$($1\leqslant x,y\leqslant n,1\leqslan ...
- vue2.0中watch总结:普通监听和深度监听
watch:{} 是一个对象,一定要当成对象来用,可监听数据,是vue中数据发生变化进行处理的函数, 它有三个选项 第一个handler:其值是一个回调函数.即监听到变化时应该执行的函数.第二个是de ...
- 实现一个成熟的底层毛玻璃效果(纯CSS)
写在前面 毛玻璃背景是一个很常见的网页样式,想要实现,其实并不难,但经过我在网上的搜索发现,大量实现方法都较为不规范,且把问题复杂化了(例如各种z-index属性和position的定位)现提供一个代 ...
- python3笔记十二:python数据类型-Dictionary字典
一:学习内容 字典概念 字典创建 字典访问 字典添加 字典删除 字典遍历 字典与列表比较 二:字典概念 1.使用键值对(key-value)存储,具有极快的查找速度 2.注意:字典是无序的 3.特性: ...
- Python基本语法_输入/输出语句详解
目录 目录 前言 输入 raw_input input raw_input 和 input 的区别 输出 print print 基本格式化输出 print复杂格式化输出 flags标志位 width ...
- win10安装mysql-最简单教程
工具下载地址 链接: https://pan.baidu.com/s/1XL2wUDrcd9NpT8NOcXoDTQ 提取码: vu34 下载好之后解压. 在目录D:\Program Files\my ...
- GitHub Port 443 Refused
最近在本地Github上传和更新远程仓库的时候老是显示 GitHub - failed to connect to github 443 windows/ Failed to connect to g ...
- MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
问题描述 通过Navicat客户端,创建MySQL函数(根据的当前节点查询其左右叶子节点)时报错,报错信息如下: This function has none of DETERMINISTIC, NO ...