PYthon之路Day12
生成器
核心:生成器的本质就是一个迭代器
程序员自己写的一种迭代器
作用:节省空间
生成器可以使用for进行遍历
生成器编写方式:
基于函数编写
def func():
print('这是一个函数')
return '函数'
func()def func():
print('这是一个函数')
yield '函数'
func() #生成生成器
print(func()) #获取到的是一个生成器的内存地址
print(func()._next_()) #生成一个生成器,启动一个生成器函数体中出现yield代表要声明一个生成器(generator)
一个yield对应一个next()
推导式方式编写
yield 和return的区别:
相同同点:
都是返回内容
都可以返回多次,但是return会终止函数,只执行一个
不同点:
return 终止函数,yield 是暂停生成器
yield 能记录当前执行位置
三者总结:
可迭代对象:str list tuple
优点:节省空间,取值方便,使用灵活(具有自己的私有方法)
缺点:大量消耗内存
迭代器:
优点:节省空间
缺点:不能直接查看值,使用不灵活,消耗时间,一次性,不可逆行
生成器:
优点:节省空间,认为定义
缺点:不能直接查看值,消耗时间,一次性,不可逆
使用场景:当文件或内容数据较大时,建议使用生成器
文件句柄本质上是一个迭代器
python 2中的xrange()与python 3中的range()一样,都是可迭代对象
xrange()返回的是列表,range返回的是迭代对象(range本身)
迭代器(iterator) 生成器(generator)
没有send()方法的时迭代器,有send()方法的就是一个生成器
send()-- 发送,具有启动(
_next_()
)和发送两个功能第一次使用send()时括号中内容必须是None
yield from 将可迭代对象的元素逐个返回;yield是一次性返回
for i in 迭代器
推导式
列表推导式
print([i for i in range(10)])
print([i for i in range(10) if i%2==0])
集合推导式
print{i for i in range(10)}
print({i for i in range(10) if i%2==0})
字典推导式:
print({i:i+1 for i in range(10)})
print({i:i+1 for i in range(10) if i%2==0})
生成器推导式:(面试题)
print((i for i in range(10)))
print((i for i in range(10) if i>5))
内置函数一
一带而过的
all() any() bytes() callable() chr() complex() divmod() eval() exec() format() frozenset() globals() hash() help() id() input() int() iter() locals() next() oct() ord() pow() repr() round()
禁止使用
eval() -- 神器一
exec() -- 神器二
hash() -- 就是区分可变数据类型和不可变数据类型
help() -- 查看帮助信息
callable() -- 查看对象是否可调用
float() -- 转换为浮点数
complex() -- 复数
bin() -- 十进制转二进制
oct() -- 十进制转八进制
hex() -- 十进制转十六进制
divmod() -- 求(商,余),返回元组
round(3.5312,2) -- 保留小数位
pow(2,2) -- 求幂
pow(2,2,3) -- 求幂后的余
print(bytes('你好',encoding=’utf-8))
--将字符串编码ord('b') -- 通过元素获取当前表位的序号
chr(98) -- 通过表位序号查找元素
repr() -- 查看数据的原生态(给程序员使用)
print() -- 给用户使用的
all() -- 判断容器中的元素是否都是真
any() -- 判断容器中的元素是否有一个为真
globals() -- 查看全局的变量,返回的是字典
locals() -- 查看当前空间的变量
PYthon之路Day12的更多相关文章
- Python之路,Day12 - 那就做个堡垒机吧
Python之路,Day12 - 那就做个堡垒机吧 本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...
- 【Python之路Day12】网络篇之Python操作MySQL
pymysql是Python中操作MySQL的模块,使用方法和MySQLDB几乎一样. 1. 执行SQL语句 #!/usr/bin/env python3 # -*- coding: utf-8 -* ...
- Python之路 Day12
day12主要内容:html基础.CSS基础 HTML HTML概述: HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标 ...
- 初学python之路-day12
本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...
- Python之路day12 web 前端(HTML+ css)
HTML文档 文档树: Doctype Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档 有和无的区别 BackCompat:标准兼容模式未开启(或叫怪异模式[Quirk ...
- 【Python之路Day12】网络篇之Paramiko
paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 一.安装 pip3 install paramiko 二.使用 1. SSHClient 用于连接远程服务器并执行基本命令 基于用户 ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
随机推荐
- Android中使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信
场景 点击拨打电话按钮,跳转到拨打电话页面 点击发送短信按钮,跳转到发送短信页面 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程 ...
- 共同战“疫”,CODING 帮助研发团队高效协同
新冠疫情下,家里蹲的日子继续延长.部分企业虽然受困于不能回公司办公,但都陆续开启了远程协作办公,远程协作领域被推上了风口.但「远程协同」看不见摸不着工作伙伴,个人的自律能力也无法保证,难免出现沟通响应 ...
- kali帮助
kali help Attention 这是我N久前学习kali时自己打的东西,不保证没有纰漏啊…… 网址 kali:https://www.herojd.com/forum.php?mod=view ...
- wifite硬核破解WiFi密码
如题 楼主在这里分享下如何使用工具破解附近的WiFi 今天使用的工具是 wifite 现在都有WiFi万能钥匙了 暴力破解还有市场吗? 首先他俩的破解思路就不一样 wifi万能钥匙是根据云端数据库内容 ...
- vue移动端下拉刷新、上拉加载
由于自身的项目比较简单,只有几个H5页面,用来嵌入app中,所有没有引入移动端的UI框架,但是介于能让用户在浏览H5页面时有下拉刷新和上拉加载,有更好的用户体验,自己写组件实现. 1.下拉刷新Drop ...
- 00.JS前言
前言: 学习一门编程语言的基本步骤(01)了解背景知识 1.了解背景知识 1)什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言.所谓“脚本语言”(scri ...
- imx6ull+debian10 构建静态qt交叉编译环境
# PC:Ubuntu18.04# GCC: arm-linux-gnueabihf- 7.4.0# 开发板:# imx6ull+debian10(文件系统为野火提供的) # 此处需要编译的是带gst ...
- 拍摄UFP 单一职责原则
3.1 新手机 3.2 拍摄 3.3 没用的东西 3.4 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因, 3.5 方块游戏的设计 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个 ...
- vuex的state选项rootState.js
说明:本文做为vuex学习详细解(主页目录 配置主页:vuex学习配置详解(目录rootState.js文件如下 作用声明 vuex的state选项常量,并导出默认为state /** * 此文件除声 ...
- mysql 行级锁问题
线上碰到存储过程死锁问题了,开始以为非主键查询 for update 会导致表锁,后来经过测试 innodb下for update索引生效的情况下 根据索引字段查询是行级锁,会将整个结果集进行上锁,直 ...