生成式
-
什么是生成式
生成式就是生成器的一种特殊写法
-
写法
-
生成器 = (表达式 for 变量 in 序列) ==> 让变量去序列中取值,每取一个值就将对应的表达式的值作为生成器的元素
def 函数名():
for 变量 in 序列:
yield 表达式 -
生成器 = (表达式 for 变量 in 序列 if 条件语句)
def 函数名():
for 变量 in 序列:
if 条件语句:
yield 表达式gen1 = (x for x in range(5)) print(gen1) # 这是生成式展开为生成器的写法 def fun1(): for x in range(5): yield x*2 gen1 = ((value, key)for key, value in {'name': 'xiaoming', 'age': 10}.items())
-
-
迭代器和生成器转换成其他的序列(转换成列表的实质是,遍历,然后将每个元素添加到列表中)
list1 = list(gen1) # [生成式] --> 直接将生成式对应的生成器转换成列表 list2 = [(value, key)for key, value in {'name': 'xiaoming', 'age': 10}.items()] # 练习:交换字典中的key, value的位置 dict1 = {'a': 1, 'b': 2, 'c': 3} result = dict((x, y) for y, x in dict1.items()) print(result)
文件
-
数据本地化和数据持久化
将数据以文件的形式存到计算机硬盘当中(程序中保存的数据当程序结束后会自动销毁) -
怎么数据持久化(怎么将程序中的数据和本地文件中的数据关联)
文件读写操作 - 读(获取文件中的内容) 写(将数据添加到文件中)文件操作的基本流程:打开文件->文件操作(读/写)->关闭文件
-
打开文件
open(file, mode = 'r', encoding=None) ---> 以指定的模式打开指定文件并且返回被打开的文件对象
说明:
file -- 字符串,需要打开的文件的路径
绝对路径 -- 文件在电脑上的全路径
相对路径 -- 相对当前代码对应的文件目录
'致橡树.txt' './致橡树.txt'
mode -- 字符串,文件的打开方式
r --> 以只读的方式打开,文本
w --> 以写的形式打开(覆盖),文本
a --> 以写的形式打开(追加),文本
rb/br --> 以只读的形式打开,二进制
wb/bw --> 以写的形式打开(覆盖),二进制
+ --> 以读写的形式打开
encoding -- 字符串,文件编码方式
utf-8:支持所有的语言
gbk:只支持英文
注意: a.读写对应的编码要保持一致
b.非文本文件不能设置编码方式,例如:图片,视频,可执行文件
c.给他传值的时候要使用关键字参数
d.以二进制的形式打开文件,不能设置encoding
注意:当以读的方式打开一个不存在文件,程序会报fileNotFindeError
以写的方式打开一个不存在的文件,就会创建一个新的文件
-
======================写操作====================
如果需要文件进行写操作,name文件必须以写的方式打开
w --> 用新的内容覆盖原文件内容
a --> 在原文件末尾添加新的内容
f2 = open('致橡树.txt', 'a', encoding='utf-8')
f2.write('郭锐是个大傻逼,大傻逼啊大傻逼\n')
图片下载过程,骑牛图片二进制数据,将二进制写入本地文件
-
关闭文件 文件对象.close()
-
文件操作的简写方式
""" with open() as 文件对象: 文件操作代码 """
网友评论