总结
1.函数加强
1.打包
函数定义的时候
按位置参数打包,使用*args 打包所有的位置参数为一个元组
按关键字参数打包,使用**kwargs 打包所有的关键字参数为一个字典
什么时候打包:
不确定参数的数量的时候
def 函数名(*args,**kwargs):
pass
注:args,kwargs可以更换为别的变量名表示,建议使用这两个
2.拆包
函数调用的时候
特殊的情况:
按位置参数进行拆包, 如果 元组/列表/字典.values() 中数据的顺序和实际参数的顺序是一致的时候,
就可以使用 *元组/列表/字典.values() 进行拆包传递给函数作为实际参数, 好处是不用依次从容器中取.
按关键字参数进行拆包, 如果字典中的键就是关键参数的名字, 使用 **字典 对字典进行拆包传递给函数 作为实际参数.
函数名(*元组/列表/字典.values())===>函数名(元素1,元素2....)
函数名(**字典) ===>函数名(键=值....)
例:
card={"name":"张飞","age":18,"sex":"男"}
print("""
姓名:{name}
年龄:{age}
性别:{sex}
""".format(**card))
info=["张飞",18,"男"]
print("""
姓名:{}
年龄:{}
性别:{}
""".format(*info))
2.return返回值加强
1.return的作用
a.返回数据到函数调用的位置
b.终止函数执行
2.返回None
a. 没有return
b. return (后面什么都没有)
c. return None
3.return可以返回多个值,以元组的形式
return 值1,值2
4.函数中可以有多个return,需要控制语句控制执行
3.变量的作用域
1.全局变量:作用范围为任意位置
注意:
1. 访问是任意位置
2. 修改, 函数外可以修改, 函数内 可以间接修改(通过 global 全局变量名 引入全局变量, 再修改)
2.局部变量:只能在函数内部使用
3.如何使用:如果只在函数中使用,就使用局部变量,节约内存资源.
4.python文件的操作
1.文件的类型
文本类型:人类能够看懂的(文字),指定正确的编码
编码:utf-8
gbk
Latin1 (英文)
big5 (繁体)
二进制文件:直接能够运行的文件
2.文件的作用
目的:永久的保存数据不丢失
3.文件操作的步骤
(1):打开文件
fp=open("文件路径","打开方式",encoding="编码方式")
打开方式:文本操作:r (读) w (覆盖写,没有自动创建) a (追加,没有自动创建)
二进制操作:rb wb ab (读写追加二进制文件)
(2):读写文件
读:
fp.read() :一次性读完
fp.read(number):一次读取指定个数字符
fp.readline(): 一次读一行
fp.readlines():按行读取所有内容,以\n表示换行
写:
fp.write(数据)
fp.writelines([列表]): 写入多条数据,不换行,没有返回值
(3):关闭文件
fp.close()
4.循环读取文件内容(解决大文件读取问题)
data=fp.read(1024)
while data:
data=fp.read(1024)