1.引用中的实参
a=0
def fn(num):
print(num)
fn(a) #引用当做实际参数
a=[10,20]
b=[30]
a+=b
A=id(a)
a=a+b
B=id(a)
A != B
2.匿名函数
1.lambda 参数:返回值
2.(lambda 参数:返回值)(参数)
调用格式1:
fn=lambda a:a+2
fn(2)
调用格式2:
(lambda a:a+2)(2)
lambda a,b:a if a>b else b
lambda *args,**kwargs:(args,kwargs)
fn(a,b,c)
return c(a+b)
fn(10,20,lambda x,y:x+y) #(10,20)
list1=[{"name":"zhangsan","age":18},{},{}...]
list.sort(key=lambda x:x["name"]) #key关键字,lambda可作为参数
list.sort(key=lambda x:x["name"],reverse=True) #倒序
3.列表推导式(列表生成式),快速生成列表
[返回值 for i in range(a,b)]
lst =[i for i in range(1,6)] # [1,2,3,4,5]
lst =[i+2 for i in range(1,6)] #[3,4,5,6,7]
lst =[i for i in range(1,6) if i % 2 ==0] #[2,4]
lst=[(x,y)for x in range(1,3) for y in range(2)]#[(1,0),(1,1),(2,0),(2,1)]
相等于
lst=[]
for i in range(1,6):
lst.append(i)
4.集合(用于去重)
特点:1.集合中的每个元素没有顺序之分(无序性)(不能通过下标访问)
2.集合中没有重复数据
5.1 文件
文件:文件就是一个字节序列,保存数据
f=open("文件名","权限",endcoding="utf-8")
f.write("写入内容") #先清空后写数据,类型 字符串
f.write("写入内容") #不清空写数据
f.read() #读权限
f.close()
权限:
w:写权限,如果没有文件会自动新建文件,以这种权限打开会清空数据
wb:可写方式打开二进制打开文件
w+:可读可写打开打开文件
wb+可读可写打开二进制打开文件
a:追加权限,如果没有文件会自动新建文件以这种权限打开不会清空数据
ab:追加方式打开二进制文件
a+:追加方式打开文件
ab+:可读可追加方式打开二进制文件
r:读权限,如果没有文件会报错
rb:可读方式打开二进制文件
r+:可读可写方式打开文件
rb+:可读可写方式打开二进制文件
r+和w+区别:都是可读可写权限,r权限文件没有会报错,w权限文件没有会创建,并会清空文件
5.2
f.tell() 返回文件光标(指针)所在的位置
f.seek(参数1,参数2) 可以改变光标所在位置
参数1 偏移量
参数2 以哪一个位置让光标偏移(0表示按照起始位置,1表示当前光标所在位置,2表示文件结束的位置,2可省略)
1.在对文件读写操作时,会影响光标的位置
2.在对文件读写之前,先考虑光标位置
想对路径
../ 上一级的符号 # ../../更上一级
/ 下一级的
./ 当前
5.3 read
f.read() 没有传递参数,默认读到文件结束,数字参数表示读多少位
f.readline() 读一行信息
f.readlines() 返回一个列表,每一行数据作为这个列表的每个元素
6.文件/夹操作
os.path.exists("文件名") #返回布尔值,存在则返回True
os.rename("旧文件名","新文件名") # 重命名
os.remove("文件名") #删除 remove("路径\文件名")
os.getcwd() #返回当前 路径
os.chdir("路径") #更改当前操作路径
os.mkdir() #创建空文件夹
os.rmdir() #删除空文件夹
os.listdir() #列出当前目录下的文件\夹
os.chdir() #改变当前工作目录到指定的路径
f.encoding window返回 cp936
sys.