Python學習的第四次總結
阿新 • • 發佈:2020-07-29
修改檔案內某行內容
f_read = open('檔名','r',encoding='utf-8')
f_write = open('檔名1','w',encoding='utf-8')
number = 0
for i in f_read :
number +=1
if number == 2 :
i = ' 被修改的內容\n '
f_write.write(i)
f_write.close()
f_read.close()
1、文字檔案裡存的字串 # a = str ( 字典名 )
2、轉成字典 b = eval ( a )
3、建立多個檔案物件
with open('檔名','r',encoding='utf-8') as f , open('檔名1','r',encoding='utf-8') as f1: a = f.read() b = f1.read() print(a,b)
4、查詢所有的關鍵字
from keyword import kwlist for i in kwlist: print(i)
5、身份運算子:is、is not
成員運算子:in、not in
6、' he \'s sad ' #轉譯字元\
7、repr(' ....\n..... ')#方便計算機閱讀,換行符\n不會被執行
深淺拷貝
s = [1,[2,3],4,5] import copy c = copy.copy(s) d = copy.deepcopy(s) s[1][0] = 7 print(s) #[1, [7, 3], 4, 5] 淺拷貝會導致原列表發生改變 print(c) #[1, [7, 3], 4, 5] 淺拷貝可以修改需要的內容 print(d) #[1, [2, 3], 4, 5] 深拷貝不會修改原列表,能完整的反映原列表(克隆)
集合 set(引數只能為一個)
1、集合內的元素必須是可雜湊的,不可改變的(整形,字串,元組)
2、內容是無序的,不可重複的
3、set整體為可改變型別,故不能做成字典
4、set運用
a = set('lyzqyjdf') print(a) #{'8', '9', '3', '6', '1'} b = ['ly','yzq','DD','ly','yzqqq'] c = set(b) print(c) #{'DD', 'yzqqq', 'yzq', 'ly'}
5、新增
a = set('lyzqylove') a.add('3') print(a) #{'z', 'q', '3', 'y', 'v', 'e', 'o', 'l'}
b = set('lyzqylove') b.update('ops') #{'e', 'q', 'o', 'l', 'v', 'z', 'y', 's', 'p'} b.update(['1206','95']) #{'z', 'o', 'y', 'v', 'l', '1206', '95', 'q', 'e'} print(b)
6、刪除
b = set('lyzqylove') b.remove('y') #{'z', 'e', 'v', 'l', 'q', 'o'} b.pop() #隨機刪除 b.clear() #set() del b #從記憶體中刪除,並報錯 print(b)
7、等價
set(' lyyyyzqy ')== set('lyzq')
8、屬於
set('ly')< set('lyyzq')
9、聯合
a = set('ly') or set('lyzq') print(a) #{'l', 'y'}交集 a = set('ly') and set('lyzq') print(a) #{'y', 'q', 'l', 'z'}全集
10、其他
a = set('123') b = set('124') print(a.intersection(b)) print(a&b) #{'1', '2'} 交集 a = set('123') b = set('124') print(a.union(b)) print(a|b) #{'1', '3', '4', '2'}並集 a = set('123') b = set('124') print(a.difference(b)) #{'3'} in a but not in b print(a.symmetric_difference(b)) print(a^b) #{'4', '3'} 雙向差集 a = set('123') b = set('123456') print(a.issuperset(b)) #False 判斷a是否為b的父級 print(a.issubset(b)) #True 判斷a是否為b的子級
函式(subroutine、procedure)
一、特點:
1、容易拓展
2、一致性、方便呼叫、減少程式碼量
二、函式格式:
def funtion_name() : #函式名命名和變數1命名要求基本一致
內容
funtion_name() # 直接呼叫,一定要加括號
三、引數
1、必須引數
def add(x,y): #x,y 為形參,不佔記憶體 print(x+y) add(3,5) #3,5按順序分別對應x,y
取系統的時間
import time time_format = '%Y-%m-%d %X' time_current = time.strftime(time_format) print(time_current) #2020-07-28 12:04:40
2、關鍵字引數
def info(name,age): print('Name: %s'%name) print('Age: %s'%age) info(name='LY',age='19') Name: LY Age: 19
3、預設引數(寫在最後面)
def info(name,age,gender='male'): print('Name: %s' % name) print('Age: %s'%age) print('gender:%s'%gender) info('ly','19','female') # Name: ly Age: 19 gender:female info('yzq','19') #Name: yzq Age: 19 gender:male
4、高階版加法器(兩者使用的時候要居左、居右,不可混合使用)
def add(*args): sum = 0 for i in args: sum += i print(sum) return sum add(1,2,3,4,5) #可以接收無窮多個值,多個值組成一個元組 def add(**kwargs): for i in kwargs: print('%s:%s'%(i,kwargs[i])) add(lover='yzq',hobby='exile') #任意輸入多個鍵值對,處理成字典
四、return
1、結束函式,返回某個新增的物件
2、若不加return,預設返回None
3、如果return後有多個物件,py會自動幫我們處理成元組
4、return後面的語句不會被執行
五、作用域
1、LEGB
x = int(8.9) # bulit-in域 start = 0 # global域 def out(): o_count = 1 #encoding域 def inner(): i_count = 2 #local域 print(i_count) inner() out()
2、宣告作用域
count = 9 def f(): global count #宣告以下的count為global型別而不是encoding型別 count = 0 print(count) f() def f(): i = 8 def y(): nonlocal i #宣告i為nonlocal型別 i = 7 print(i) y() f()
****終於總結完了,懶惰是魔鬼!loveyzqqqq~.~