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的更多相关文章

  1. Python编程学习,高效求解素数程序实例

    素数是编程中经常需要用到的. 作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算. #coding:utf-8 #设置python文件的编码为utf-8, ...

  2. Python编程学习第三课之编程从Hello World开始

    在搞定了前几节课的情况下,大家是否有一种想要跃跃欲试的赶脚,接下来就是我们开始练手的实战时刻. 每个编程人员入门编程的第一课都是向我们马上要进入的编程世界问好,"你好,世界"英文说 ...

  3. python编程学习--Pygame - Python游戏编程入门(0)---转载

    原文地址:https://www.cnblogs.com/wuzhanpeng/p/4261015.html 引言 博客刚开,想把最近学习的东西记录下来,算是一种笔记.最近打算开始学习Python,因 ...

  4. python开发学习-day04(迭代器、生成器、装饰器、二分查找、正则)

    s12-20160123-day04 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  5. Python编程学习爆破一些简单加密的文件

    前言 这里只是分享一下Python如何生成爆破字典,对于简单的一些加密文件,咱们可以跑字典获取正确的密码,比如zip加密文件.这里小编给大家简单的介绍一下爆破字典的方法,希望对大家学习Python有帮 ...

  6. python编程学习路线及笔记

    话不多说,直接上图! 关于人工智能算法学习思路,欢迎浏览我的另一篇随笔:如果你想开始学习算法,不妨先了解人工智能有哪些方向? 之后博主将持续分享各大算法的学习思路和学习笔记:hello world: ...

  7. Python编程学习笔记 随时更新

    import urllib.request import re url = 'http://stock.sohu.com/news/' html = urllib.request.urlopen(ur ...

  8. python编程学习day03

    1.文件操作 (1)打开文件 f = open ("文件名称",mode='' ",encoding="utf-8") mode=操作方式 encod ...

  9. 学习Python编程的11个资源

    用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程语言.如果你正打算学习 web 开发,Python 是一个不错的选择,甚至你想学游戏开发也可 以从 Python 开始,因 ...

随机推荐

  1. 使用openntpd替换ntpd

    系统自带的ntp服务太难用,systemd启动几次没启动起来,懒得折腾,换了openntpd一次成功.

  2. 同域SQL server 做镜像服务器遇到1418错误

    今天遇到了如题所说的错误,查了一天没有看到好的解决方案,因为作者是小白,所以对于解决方案都是代码的那种,完全理解不了. 现在,讲述一下我的解决方法.因为是同域的服务器,这个时候说网络访问不了对方,但是 ...

  3. Python3:_pickle使用方法

    常遇到的问题: python3使用pickle读取文件提示TypeError或者UnicodeDecodeError的解决办法 “ModuleNotFoundError: No module name ...

  4. 前端学习(二十)jquery属性(笔记)

    jq里面操作属性的方法: 设置属性:            设置一个:            $(this).attr('src','img/pic2.jpg');            设置一组:  ...

  5. java中接口有什么用

    1.通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类. 2.通过接口可以指明多个类需要实现的方法. 3.通过接口可以了解对象的交互界面,而不需了解对象所对应的类. 另:Java是单继承, ...

  6. mac MAMP安装redis扩展

    一般情况下目录大概是一样的,只是php的版本不同,所以选择好自己对应的php版本目录即可 git clone https://github.com/nicolasff/phpredis.git cd ...

  7. Mysql学习笔记(001)-常见命令

    常见命令 SHOW DATABASES; /* use test; create database myemployees; use myemployees; create table employe ...

  8. centos7安装kylo0.10.1

    安装环境centos7,kylo版本0.10.1 常用的链接地址 kylo官网:https://kylo.io/ kylo文档:https://kylo.readthedocs.io/ 下载地址 官网 ...

  9. [NOIP模拟测试7]visit 题解(组合数学+CRT+Lucas定理)

    Orz 因为有T的限制,所以不难搞出来一个$O(T^3)$的暴力dp 但我没试 据说有30分? 正解的话显然是组合数学啦 首先$n,m$可能为负,但这并没有影响, 我们可以都把它搞成正的 即都看作向右 ...

  10. wmic命令用法小例

    wmic就是wmic.exe,位于windows目录底下,是一个命令行程序.WMIC可以以两种模式执行:交互模式(Interactive mode)和非交互模式(Non-Interactive mod ...