文章目录
- 前言
- 一、函数的基本概念
- 二、文件
- OS模块
- json模块
- 高级特性
- 生成式
- 生成器
- 闭包
- 装饰器
前言
一、函数的基本概念
**全局变量:**在函数外边定义的变量,全局生效
**局部变量:**在函数里边定义的变量,局部生效
如果要在函数中修改全局变量,不能直接修改;需要用global关键字声明修改的变量是全局变量;主要是不可变数据类型,对于可变数据类型,不需要声明
形参实参
常见的四种形参:
必选参数,默认参数,可变参数,关键字参数
关键字参数:
可以传递key,value
def enroll(name,age=18,**kwargs):\
匿名函数:
lambda
递归函数:
函数在内部调用自己本身
二、文件
mode:
r:只能读文件
w:只能写入(而且会清空之前的文件内容)
a+:读写(文件追加写入内容)
with语句:
一般情况下我们打开文件进行读写操作之后都需要关闭文件,防止占用资源,但是这样会很麻烦,所以我们引入with语句,这样在执行玩with语句中的内容之后,会自动关闭文件释放空间
with open(‘doc/test.txt’,‘w+’)as f:
f.wirte(‘hello world\n’)
f.seek(0,0) 移动指针到文件最开始
f.seek(0,2) 移动指针到文件末尾
print(f.read()) 读取文件内容
OS模块
获取主机名以及主机信息
try:可能会出现报错的代码
except:如果出现异常,执行的内容
finally:是否有异常都会执行的内容
获取环境变量:
envs = os.environ
print(envs)
目录名和文件名的拼接:
os.path.dirname 获取某个文件对应的目录名
file 当前文件
join 拼接,将目录名和文件名拼接起来
json模块
json是一种轻量级的数据交换格式
将python对象编码成json字符串
将json字符串解码成python对象
将字典形式的数据转换为excel形式
小练习
高级特性
生成式
可以用列表生成式来优化我们的代码
但是列表生成式的使用也要根据具体情况而定
集合生成式、字典生成式
生成器
一边循环一边计算的机制
1、如何创建生成器:列表生成式的改写:将[]改为()
2、yield关键字
生成器的特点:减少内存占用,不会堆积在内存中,一边循环一边计算。在yield处中断,不会过于占cpu
闭包
闭包:
1、函数里边嵌套函数
2、外部函数的返回值是内部函数的引用
3、内部函数可以使用外部函数的变量
装饰器
装饰器就是用来装饰函数的工具
功能:在不改变源代码的情况下,添加额外功能
如何实现装饰器:基于闭包
含参的装饰器
存在多个装饰器的时候,执行装饰的内容是从上到下,被装饰的顺序是从下到上