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 开始,因 ...
随机推荐
- easyui grid单元格类型
在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的editor类型,这时原有的例子就显的有点太过简单,不能实现我们的需求,现在应用我在项目中的操作为例,显示下实现同列 ...
- MySQL练习题--sqlzoo刷题
首先查看world表的字段: name continent area population gdp capital tld flag SELECT * FROM world: 2.显示人口至少为2亿的 ...
- day02 python流程控制 while循环 格式化输出 运算符 编码
day02 python 一.循环: while循环 while expression: while_suite 1.break 停止当前循环(如果多个循环嵌套, ...
- nodejs 模板引擎jade的简单使用
1.jade html head style script body div ul li li jade1.js var jade=require('jade'); var str=jade.rend ...
- SqlServer 查询的时候过滤条件有参数导致速度很慢的问题-参数嗅探
何谓SQLSERVER参数嗅探 大家听到“嗅探”这个词应该会觉得跟黑客肯定有关系吧,使用工具嗅探一下参数,然后截获,脱裤o(∩_∩)o . 事实上,我觉得大家太敏感了,其实这篇文章跟数据库安全没有什么 ...
- HBase自定义MapReduce
HBase表数据的转移 在Hadoop阶段,我们编写的MR任务分别进程了Mapper和Reducer两个类,而在HBase中我们需要继承的是TableMapper和TableReducer两个类. 目 ...
- Android Runnable 运行在那个线程
Runnable 并不一定是新开一个线程,比如下面的调用方法就是运行在UI主线程中的: Handler mHandler=new Handler(); mHandler.post(new Runnab ...
- 提高ASP.NET首页性能的方法
1.js压缩文件,css压缩文件,引用的越少越好. 2.用 HTTP Module 控制页面的生命周期. 3.自定义生成动态页面的静态内容 . 4.页面用GZIP压缩. 5.OutputCache 编 ...
- Java线程池ThreadPoolExecutor使用和分析
线程池是可以控制线程创建.释放,并通过某种策略尝试复用线程去执行任务的一种管理框架,从而实现线程资源与任务之间的一种平衡. 以下分析基于 JDK1.7 转自: http://www.cnblogs. ...
- windows API 创建系统托盘图标
系统托盘在我们使用的程序中很普遍,下面我们来看一个很不错的例子,使用Win32 API实现,对理解系统托盘有些帮助. [cpp] view plaincopy #include <windows ...