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()
获得程序文件位置路径,调用方法时很有用
输出
调用其他包的函数
项目目录结构
- bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
- foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。
- docs/: 存放一些文档。
- setup.py: 安装、部署、打包的脚本。
- requirements.txt: 存放软件依赖的外部Python包列表。
- README: 项目说明文件。
关于README的内容
这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。
它需要说明以下几个事项:
- 软件定位,软件的基本功能。
- 运行代码的方法: 安装环境、启动命令等。
- 简要的使用说明。
- 代码目录结构说明,更详细点可以说明软件的基本原理。
- 常见问题说明。
以上是关于python学习笔记——肆的主要内容,如果未能解决你的问题,请参考以下文章