python编程学习day04
1.函数名是变量名
“=”是内存指向,等号赋值操作,内存指向操作
变量——可赋值,可作为列表元素
函数名可以作为返回值返回
函数名可作为参数传递
2.闭包
内层函数使用了外层函数的变量

作用:可以让一个变量常驻内存,不被销毁,可以保护变量不被外界修改

也就是outer()函数里,a=10这个变量永存,不会被外界污染,所以称之为闭包
3.装饰器
是一种固定语法,不改变函数内部语法逻辑的基础上,给函数加的功能。
软件设计原则:开闭原则:对功能添加开放,对修改原来函数代码封闭。
装饰器模板,相当于函数的函数:

调用装饰器1

调用装饰器2

同一函数被多个装饰器一层一层包
4.迭代器
作用,效果:让一个可迭代对象从里面拿到每个数据。
在python中,只有可迭代对象能拿到迭代器,int类型不可迭代。
可以被迭代:在这种类型数据有 __iter__
迭代器:通过__iter__函数得到一个对象
迭代器是可迭代对象,可迭代对象不一定是迭代器。
直观效果:有__iter__ 是可迭代对象
有__iter__,__next__是迭代器
特点:
1.省内存
2.惰性机制
3.只能向前,迭代完对象之后会报错 StopIteration
5.生成器
本质是迭代器。 (1).生成器函数 yield 和return效果一样,每次next执行到下个yield
节省内存,把超大数据集,分段处理
(2)生成器表达式

拿空生成器:1.for 循环 2.生成列表
在函数写yield,此函数为生成器函数,生成器函数执行创建一个生成器。生成器.__next__(),才执行一次到yield。
6.推导式
列表推导式 [结果 for循环 if语句]
字典推导式 {key:value for循环 if语句}
集合推导式 {key for循环 if语句}
生成器表达式 (结果 for循环 if语句)
7.lambda 匿名函数
Lambda 参数:返回值
8内置函数
sorted()排序函数 用特定规则排序
filter() 筛选函数 用特定规则刷选
map()映射
reduce() 和map相反
9.递归
递归就是调用函数自己
最大深度为1000
python编程学习day04的更多相关文章
- Python编程学习,高效求解素数程序实例
素数是编程中经常需要用到的. 作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算. #coding:utf-8 #设置python文件的编码为utf-8, ...
- Python编程学习第三课之编程从Hello World开始
在搞定了前几节课的情况下,大家是否有一种想要跃跃欲试的赶脚,接下来就是我们开始练手的实战时刻. 每个编程人员入门编程的第一课都是向我们马上要进入的编程世界问好,"你好,世界"英文说 ...
- python编程学习--Pygame - Python游戏编程入门(0)---转载
原文地址:https://www.cnblogs.com/wuzhanpeng/p/4261015.html 引言 博客刚开,想把最近学习的东西记录下来,算是一种笔记.最近打算开始学习Python,因 ...
- python开发学习-day04(迭代器、生成器、装饰器、二分查找、正则)
s12-20160123-day04 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- Python编程学习爆破一些简单加密的文件
前言 这里只是分享一下Python如何生成爆破字典,对于简单的一些加密文件,咱们可以跑字典获取正确的密码,比如zip加密文件.这里小编给大家简单的介绍一下爆破字典的方法,希望对大家学习Python有帮 ...
- python编程学习路线及笔记
话不多说,直接上图! 关于人工智能算法学习思路,欢迎浏览我的另一篇随笔:如果你想开始学习算法,不妨先了解人工智能有哪些方向? 之后博主将持续分享各大算法的学习思路和学习笔记:hello world: ...
- Python编程学习笔记 随时更新
import urllib.request import re url = 'http://stock.sohu.com/news/' html = urllib.request.urlopen(ur ...
- python编程学习day03
1.文件操作 (1)打开文件 f = open ("文件名称",mode='' ",encoding="utf-8") mode=操作方式 encod ...
- 学习Python编程的11个资源
用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程语言.如果你正打算学习 web 开发,Python 是一个不错的选择,甚至你想学游戏开发也可 以从 Python 开始,因 ...
随机推荐
- mysql添加外键语句
sql语句格式: · 添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主 ...
- 嵌入式 emmc 中 安装 烧录 内核 kernel,设备树 devicetree ,根文件系统 rootfs
一般调试嵌入式开发板喜欢选择 利用 TFTP 传送 内核与 设备树, 利用 nfs 加载根文件系统. uboot 环境变量 设置如下: bootargs=root=/dev/nfs rw nfs ...
- KiCAD输出生产文件
KiCAD输出生产文件 本文包括PCB生产制造的所有文件的输出方法,包括:BOM.坐标.锡膏层.GERBER.钻孔.丝印和装配图 一.KiCAD导出BOM KiCAD导出BOM有以下几种办法: 注意: ...
- jquery实现表格复选框---多行选择问题(php变量)
1.html多选框标签行 表头的多选框,用于全选,取消全选 <th><input id='allSelected' type="checkbox">< ...
- SpringCloud---分布式服务跟踪---Spring Cloud Sleuth
1.概述 1.1 为什么要用到服务跟踪? 随着业务的发展,系统规模也会变得越来越大,各服务之间的调用关系也变得越来越错综复杂: 通常一个由客户端发起的请求 在后端系统中会经过多个不同的微服务调用 ...
- FromBase64String(String)和Encoding.Default.GetBytes(String)
今天突然被问FromBase64String(String)和Encoding.Default.GetBytes(String)有啥区别,我刚开始学C#对这个一脸懵逼,于是总结一下今天查资料的内容. ...
- springboot集成使用rabbitmq笔记(3.基本过程)
使用rabbitmq笔记一 使用rabbitmq笔记二 使用rabbitmq笔记三 1.AMQP协议 AMQP 0-9-1的工作过程如下图:消息(message)被发布者(publisher)发送给交 ...
- SQL LIKE 运算符
SQL LIKE 运算符 在WHERE子句中使用LIKE运算符来搜索列中的指定模式. SQL LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. 有两个通配符与LIKE运 ...
- HDU6333 求组合数前m项的和
目录 分块 莫队 @ HDU6333:传送门 题意:求组合数前m项的和. 在线分块or离线莫队 分块 重要的一个定理: \[C_{n}^{m} = 0\;\;m > n\] \[C_{n}^{m ...
- eclipse中server name选项变灰
删除workspace中.metadata\.plugins\org.eclipse.core.runtime\.settings目录下 org.eclipse.wst.server.core.pre ...