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 开始,因 ...
随机推荐
- 前端用vue,后端需要nodejs吗?
其实用脚趾头想想也知道:后端用不用node,和前端用不用vue,二者完全没关系. 那为何用vue和vue插件开发前端的时候,经常需要各种npm install呢?为何要在本地安装node环境? 本地需 ...
- 从 Server Timing Header 看服务器是如何处理请求的
原文作者:Florian Hämmerle 译者:UC 国际研发 Jothy 写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端.服务端.算法.测试.数据.前端等相关的 ...
- ES模块的基本用法常见使用问题
本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...
- 帝国CMS数据库数据表详细说明
表名 解释 phome_ecms_infoclass_news 新闻采集规则记录表 phome_ecms_inf ...
- Shiro学习(15)单点登录
Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录.此处我们使用Ja ...
- Shiro学习(12)与Spring集成
Shiro的组件都是JavaBean/POJO式的组件,所以非常容易使用spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web应用的集成. 在示 ...
- python bs4解析网页时 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to inst(转)
Python小白,学习时候用到bs4解析网站,报错 bs4.FeatureNotFound: Couldn't find a tree builder with the features you re ...
- BZOJ 3771: Triple(FFT+容斥)
题面 Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: "这把斧头,是不是你的?" 樵夫一看:&qu ...
- java 原生 HttpClient
package org.rx.socks.http; import com.google.common.base.Strings; import lombok.SneakyThrows; import ...
- wampServer2.2 You don't have permission to access /phpmyadmin/ on this server.
You don't have permission to access /phpmyadmin/ on this server. 打开 然后