python学习笔记——肆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记——肆相关的知识,希望对你有一定的参考价值。

第四周

  

 

装饰器

本质是函数,装饰其他函数,为其他函数添加附加功能。

原则:

1 不能修改被装饰函数的源代码

2 不能修改被装饰函数的调用方式

 技术分享

 

 

 

 

函数就是一个变量

相当于把函数体赋值给函数名

 技术分享

 

当垃圾回收时,会在内存里清空没有被引用的值

x=1  说明x引用了1 不会被回收

匿名函数 没有名字 没有被引用 会被回收

 

 

例子:一

bar传的是内存地址,加上()就能运行

直接传bar()相当与把返回结果传进去了

 技术分享

 

例子2 没有改变bar()的调用过程

 技术分享

 

 

 

函数的嵌套

  在函数里用def声明一个函数,bar函数相当于一个局部变量,外部无法调用

 技术分享

技术分享

技术分享

技术分享

 

高潮版

在装饰器上加的命名参数

技术分享

会被装饰器最外层的函数获取

 技术分享

   给被装饰者bbs的参数,会被

            装饰函数内部的函数获取

 技术分享

技术分享

 

 

 

列表生成器,外边是[],一次性产生所有的数据                                                                                                                                                                                                       。

 技术分享

 

 

 

生成器,外边是(),调用_next_,才获取。

 技术分享

 

生成器。只有在调用时才会生成相对应的数据

只记录当前的位置

只有_next_()方法可以使用 python3

python2 不加左右下划线next()

 

斐波那契数列,除了第一个和第二个数外,任意一个数都可以由前两个数相加得到。

 

中间有yield的存在,def fib不再是一个函数,而是一个生成器

返回值 done 实际返回的是 错误信息,只有在报错的时候才会打印

正常调用fib,只会返回一个生成器

Yield记录了生成器的位置状态,每执行一次next操作,方法都会回到yield位置

在实际运行中是看不到的

 技术分享技术分享

 

 

 

 

python中的异常处理

 

 技术分享

技术分享

 

 

 

生产者

 技术分享

 

 

 

 

 迭代器

 

技术分享

 

注意的可迭代对象和迭代器的区别

 

 

 

dar(引用名) 。可以看出此引用有多少方法,有next方法的才叫做迭代器

 

 

  isinstance(引用,Iterable) 判断对象是否是可迭代对象(可循环的)

 

  isinstance(引用,Iterator) 判断对象是否是可迭代器对象

 

判断是否是迭代对象

 技术分享

 

 

判断是否是迭代器对象

 

 

 技术分享

技术分享

 

 

 

 

迭代器的计算是惰性的,用到时再计算,

 

For循环就是一个迭代器

 

 

Python内置方法

 

abc求绝对值(正负都得正)

a=abs(-7)
print(a)

输出 7

 

 all判断可迭代的对象,中所有的元素是否为真(不等于0)

 技术分享

 

输出
print(all(b))

 技术分享

 

 

 

any 判断可迭代的对象,有一个以上的元素 是否为真(只要有一个不是0,或者不是None(空)就返回True)

 技术分享

 

输出

 技术分享

 

 

  ascii 把内存对象变成一个可打印的 字符串

 

bin 把数字转成2进制

 技术分享

 

输出

 技术分享

 

 

 

bool判断真假  0和 空 为 Flase

 技术分享

 

 

 

 

Bytearry把二进制变成一个列表的格式可以修改

 

 技术分享

 

 

bytes把字符串变成 byte类型

 技术分享

 

 

输出

 

 技术分享

 

 

 

callable

判断是否是可调用的类型(函数,类)

 技术分享

 

输出

True

 

 

 

Car()把数字转化成 ASCII码相对应的 字符

 技术分享

 

输出

 技术分享

 

 


Ord()把ASCII码相对应的字符转化成 数字

 技术分享

 

 

输出

 技术分享

 

 

 

 

 exex()可以把字符串 转成代码执行

 技术分享

 

输出

 技术分享

 

 

 

 

  dir 查看内置方法

a=(1,2)
print(dir(a))

输出

 技术分享

 

 

 

divmod求两数相除后的 整数值 余数

 技术分享

 

输出

技术分享

 

 

evel根据字符串的格式将其转化为 列表,元组,字典,集合

输出

 技术分享

 

 技术分享

 

 

 

Lambda匿名函数 方法体是n:后边的

 技术分享

 

 

 

输出

 技术分享

 

 

filter过滤

例子:过滤得到5以上的元素

得到res一个迭代器,然后循环输出

 技术分享

 

输出

 技术分享

 

 

 

Map将 引用中 的每个元素,拿出来进行操作

目标可以是 列表,元组,集合,字典(只会对key进行操作)

    技术分享

 

       

      

输出                             

 技术分享

 

字典的输出

 技术分享

 

 

 

frozenset把数据变成不可更改的

 

a=[1,2,4]
frozenset(a)

 

 

 

globals()打印当前程序的全局变量

按照key:velue的方式打印出来 包含文件名 地址

 技术分享

 

 

 

locals()打印当前程序的 局部变量

 

 

 

 

 

 

 

 

 

 

Hash

把字符串在转成相应的数字,在数据类型中,通过转化成的数字排序后,判断数据所在的位置,从而实现快速查找。这是在内部实现的。

 技术分享

 

 

 

 

输出

 

 

 

 

hex()转成16进制

 技术分享

 

Max 得到列表最大值

 技术分享

 

输出

 技术分享

 

Min得到列表最小值

 

 

Pow()计算 几次方

Pow()计算2的3次方

 技术分享

 

输出:

 

 技术分享

 

 

 

 

 round保留小数点后面的 几位

 

 技术分享

 

 

 

sorted()给字典排序

 技术分享

 

输出 按照key进行排序

 技术分享

 

 

 

输出 按照velue进行排序

 技术分享

 

输出

 

 技术分享

 

 

 

Zip拉链

将两个列表合并到一起 变成为n个元组,数据一一对应

如果a b元素个数不一样。就会忽略后面几个元素,如下图

  技术分享

 

 

输出

 

 技术分享

 

 

 

 

__import__ 调用执行 其他程序的方法

方法一:

from work.day04.Atm.core.user_name import user

 

 

Json

只能处理简单的数据类型

列表 元组 字典 集合

无法处理 函数

 

json序列化

 技术分享

 

 

json反序列化

 

 技术分享

 

 

 

函数序列化 需要使用

import pickle

pickle.dump(

 

 

 

 

获得程序文件位置路径,调用方法时很有用

 技术分享

 

输出

 技术分享

 

 

调用其他包的函数

 

 

 

 

项目目录结构

 

 技术分享

 

 技术分享

 

 

 

 

  1. bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
  2. foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py
  3. docs/: 存放一些文档。
  4. setup.py: 安装、部署、打包的脚本。
  5. requirements.txt: 存放软件依赖的外部Python包列表。
  6. README: 项目说明文件。

 

 

关于README的内容

这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。

它需要说明以下几个事项:

    1. 软件定位,软件的基本功能。
    2. 运行代码的方法: 安装环境、启动命令等。
    3. 简要的使用说明。
    4. 代码目录结构说明,更详细点可以说明软件的基本原理。
    5. 常见问题说明。






以上是关于python学习笔记——肆的主要内容,如果未能解决你的问题,请参考以下文章

安全牛学习笔记python学习笔记

[Python] Python 学习笔记

Python学习笔记

[Python笔记]Python学习笔记三

Python学习笔记-2017.5.4thon学习笔记-2017.5.14

[Python笔记]Python学习笔记四