生成式
1.什么是生成式
生成式就是生成器一種固定寫法
2.寫法
a.
生成器 = (表達式 for 變量 in 序列)-->讓變量去序列中取值,每取一個值就將對應的表達式的值作為生成器
gen1 = (x for x in range (5))
--> def func1():
for x in range (5):
yield x
b.生成器 = (表達式 for 變量 in 序列 if 條件語句)
def 函數名():
for 變量 in序列:
if 條件語句:
yield 表達式
gen1 = (x for x in range(5))# 相當于def func1():
print(next(gen1)) # for x in range(5):
print(next(gen1)) # yield x
gen3 = ( x for x in range(10) if x &1)
3.迭代器生成器轉換成其他序列
[生成式]-->直接將生成式對應的生成器轉換成列表
list1=list(gen3)
print(list1)
list2 = [x.upper() for x in '12as67iwejfhd2342341bb1j' if "a"<=x<='z']
print(list2)
# 交換字典1的key和value產生一個新的字典
dict1 = {'a':1,'b':2,'c':3}
result = dict((x,y) for y,x in dict1.items())
print(result)
文件操作
1.數據本地化和數據持久化
將數據以文件的形式存到計算機硬盤中(程序中保存的數據蓬推,當程序運行結束會自動銷毀)
2.怎么做數據持久化(怎么將程序中的數據和本地文件中的數據關聯)
文件讀寫操作 - 讀(獲取文件中的內容), 寫(將數據添加到文件中)
a.文件操作的基本流程: 打開文件 -> 文件操作(讀/寫) -> 關閉文件
3.打開文件
open(file, mode, endcoding) -> 以指定的模式打開指定文件杖虾,并且返回被打開的文件對象
說明:
file - 字符串, 需要打開的文件的路徑。
(了解)絕對路徑: 文件在電腦上全路徑
相對路徑: ./ -> 代表當前目錄(當前目錄指當前的py文件所在的目錄), 可以省略
../ -> 代表當前目錄的上層目錄
.../ -> 代表當前目錄的上層目錄的上層目錄
mode - 字符串,文件的打開方式
r -> 以只讀的形式打開, 文本 (默認)
w -> 以寫的形式打開(覆蓋),文本
rb/br -> 以只讀的形式打開, 二進制
wb/bw -> 以寫的形式打開(覆蓋), 二進制
a -> 以寫的形式打開(追加),文本
+ -> 以讀寫的形式打開
注意:當以讀的方式打開一個不存在的文件,程序報FileNotFindError
但是以寫的方式打開一個不存在的文件川陆,不會報錯毁靶,還會自動創(chuàng)建這個文件
encoding - 字符串胧奔,文字編碼方式
utf-8: 支持所有的語言
gbk: 只支持英文
注意:a.讀和寫對應的編碼要保持一致
b.非文本文件不能設置編碼方式, 例如:圖片,視頻,可執(zhí)行文件等...
c.給它傳值的時候要使用關鍵字參數
d.以二進制的形式打開文件,不能設置encoding
4.操作文件
a.讀操作
文件對象.read() - 獲取指定文件中的內容
5.關閉文件
文件對象.close()
6.文件操作的簡寫 - 打開文件预吆,操作完成后會自動關閉文件
with open(file, mode, endcoding) as 文件對象:
文件操作代碼