永洪社区

标题: Python基础知识二 [打印本页]

作者: 起开    时间: 2024-6-5 12:30
标题: Python基础知识二
模块、包
什么是模块?
1、把相同功的函数放在一个py文件里,称为模块。
2、一个PY文件就称为一个模块。
模块有什么好处:
1、容易维护。
2、减少变量和函数名冲突。
模块种类:
1、第三方模块——别人写的模块
2、内置模块——编译器自带模块(如:os、sys、等)
3、自定义模块——自己编写的模块
模块怎么导入:
通过import命令导入,eg:importos(模块名)
什么是包?
1、把多个模块放在同一个文件夹内,这个文件夹称为包。
2、文件夹称为包还有一个条件——文件夹里要有__init__.py模块。
模块与包有什么区别
1、模块——一个py文件就称一个模块
2、包——一个包含有__init__.py的文件夹称为一个包;一个包里可以有多个py模块。
json、pickle
2、pickle——把python所支持的所有类型转换成字符串
优点:支持python 全部数据类型
缺点:只能在python平台使用,占用空间大。
3、json和pickle有4个方法
load 、loads 、dump 、dumps
load:通过open函数的read文件方法,把内存数据转成字符串
loads:把内存数据转成字符串
dump:通过open函数的write文件方法,把字符串转换成相应的数据类型。
dumps:把字符串数据转成相应的数据类型。
什么是shelve?
1、shelve是一种key,value 形式的文件序列化模块;序列化后的数据是列表形式。
2、底层封装了pickle模块,支持pickle模块所支持的数据类型。
3、可以进行多次反序列化操作。
什么是hashlib?
hashlib 模块——也称‘哈希’模块。
通过哈希算法,可以将一组不定长度的数据,生成一组固定长度的数据散列。
特点:
1、固定性——输入一串不定长度的数据,生成固定长度的数字散列。
2、唯一性——不同的输入所得出的数据不一样。
2、md5
输入一串不定长度的数据,生成128位固定长度的数据。
特点:
1、数字指纹——输入一串不定长度的数据,生成128位固定长度的数据(数字指纹)。
2、运算简单——通过简单的运算就可以得出。
3、放篡改——改动很少,得出的值都会不一样。
4、强碰撞——已知MD5值,想找到相同的MD5值很难。
什么是函数?
把代码的集合通过函数名进行封装,调用时只需要调用其函数名即可。
有什么好处:
1、可扩展
2、减少重复代码
3、容易维护
2、函数的参数?
函数可以带参数:
形参:
1、在函数定义是指定。
2、函数调用时分配内存空间,函数运行结束,释放内存空间。
实参:
1、形式可以是常量、变量、表达式、函数等形式。
2、无论是何种形式,都必须要有明确的值,以便把数据传递给形参。
默认参数:
1、函数定义时可以指定默认参数(eg:def func(a,b=1))
2、传参时指定了默认参数,就使用传参时的值,没有指定,则使用默认参数的值。
关键参数:
1、函数传参时需按顺序传参,如果不按顺序传参可以使用关键参数传参。
非固定参数:
1、当不确定参数的数量时可以使用非固定参数。
2、非固定参数有两种:1.*args——(传入的参数以元组表示)。2.**kwargs——(传入的阐述用字典表示)
3、函数的返回值
1、函数可以把运算的结果返回。
2、函数可以有返回值,也可以没有返回值。
有返回值——通过return返回。
没有返回值——返回值为None
3、函数遇到return,代表函数运行结束。
4、函数的种类
嵌套函数——一个函数包含了另一个函数。
高阶函数——一个函数的参数引用了另一个函数,一个函数的返回值是另一个函数。
匿名函数——不用显式指定函数名的函数(lambrda),常和map和filter配合使用。
递归函数
1、函数内部引用了函数自身
2、函数里有一个明确的结束条件。
递归函数的特性:
1、有一个明确的结束条件
2、每次递归的规模都应有所减少
3、递归函数的效率不高。
作用域
1、名称空间
名称空间就是存放变量名和变量值(eg:x=1)绑定关系的地方。
1、名称空间种类:
local:函数内部,包括形参和局部变量。
global:函数所在模块的名字空间。
buildin:内置函数的名字空间。
2、变量名的作用域范围的不同,是由这个变量名所在的名称空间所决定的。
全局范围:全局存活,全局有效。
局部范围:局部存活,局部有效。
作用域查找顺序
作用域查找顺序:
local——》enclosingfunction——》global——》builtin
local:函数内部,包括形参、局部参数。
enclosing function:内嵌函数。
global:函数所在模块。
builtin:内置函数。
闭包
什么是闭包
1、一个嵌套函数,分别有内函数,外函数。
2、内函数使用了外函数的变量。
3、外函数返回了内函数的应用地址。
4、那么这个嵌套函数就称为闭包。
闭包有什么意义
1、闭包返回的对象不仅仅是一个对象,而且还返回了这个函数的外层包裹的作用域。
2、无论这个函数在何处被调用,都优先使用其外层作用域。






欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4