python第三天學習總結

1.集合
集合主要對裏面的元素進行去重和關係運算,元素排列是無序的。
a.集合的操作
#############去重
set1 = {1,1,2,2,3,4,4,5}
print(set1) #輸出set1 = {1,2,3,4,5}
##############增加值
set1 = {1,1,2,2,3,4,4,5}
set1.add(6)
print(set1) #輸出set1 = {1,2,3,4,5,6}
set1.update('abc')
print(set1) #輸出set1 = {1,2,3,4,5,6,'a','b','c'}
###############刪除
set1.pop() #隨機刪除
set1.remove('a') # 按照元素刪除,如果無此元素會報錯
set1.clear() #清空集合
del set1 #刪除集合
#################查詢
用for循環查詢,因爲集合的元素是無序的
b.集合的關係運算
set1 = {1,2,3,4,5} set2 = {1,2,3,7,8}
print(set1 & set2) #交集。輸出{1, 2, 3}
print(set1 | set2) #並集。輸出{1, 2, 3, 4, 5, 7, 8}
print(set1 - set2) #差集。輸出{4, 5}
print(set2 - set1) #差集。輸出{7, 8}
print(set1 ^ set2) #反交集。輸出{4, 5, 7, 8}
print(set1 < set2) #子集。輸出False
print(set2 > set1) #超集。輸出False

2.深淺copy
######淺copy 第一層各自獨立,從第二層開始,共用一個內存地址
s1 = [1, 2, 3,[11,22]]
s2 = s1.copy()
s1[-1].append(666)
print(s1, s2) #s1和s2一樣的值
print(id(s1), id(s2)) #s1和s2的內存id不同
print(id(s1[-1]), id(s2[-1])) #內層列表的id值是一樣的
深copy 無論多少層,都是互相獨立的
import copy
s1 = [1, 2, 3,[11,22]]
s2 = copy.deepcopy(s1)
s1.append(4)
print(s1, s2) #只有s1增加了4,s2並沒有增加4,說明第一層不是同一內存地址
s1[-1].append(33) #在內層的列表增加值33
print(s1, s2) #只有s1內層列表增加了33,s2並沒有增加33,說明內層不是同一內存地址

3.文件操作
文件操作的執行流程: 打開文件,產生文件句柄(f1)--- 對文件句柄進行操作(open())---關閉文件句柄(f1.close())
########文件的讀
r模式:
f1 = open('123.txt',encoding='utf8',mode='r') #123.txt要存在當前目錄,否則會報錯
print(f1.read()) #打印讀取的內容
f1.close() #關閉文件句柄
f1.read(n) #按照字符讀取,n代表n個字符
f1.readline() #按行讀取
f1.readlines() #返回列表,包含所有的行
rb模式(讀取非文字類):
f1 = open('1.jpg',mode='rb') #1.jpg要存在當前目錄,否則會報錯
print(f1.read())
f1.close()
f1.read(n) #按照字節讀取,n代表n個字節
for循環模式:一次循環佔用一塊內存,循環完後釋放。
r+模式和r+b模式和以上模式類似。
##############文件的寫
f1 = open('456.txt',encoding='utf-8',mode='w') #沒有文件,新建文件寫入內容,有原文件,先清空內容,再寫入新內容
print(f1.write('456'))
f1.close()
wb模式(非文字類的寫入)
f2 = open('2.jpg', mode='wb')
f2.write(f1.read()) #f1.read()是讀取一個圖片內容
f2.close()
w+模式和w+b模式和以上模式類似.
###############文件的追加
f1 = open('456.txt',encoding='utf-8',mode='a') #沒有文件,新建文件寫入內容,有原文件,在源文件的基礎上增加
print(f1.write('789'))
f1.close()
ab模式 a+模式 a+b模式和以上模式類似
#########文件的其它常用操作
f1.seek() #調整光標的位置
f1.tell() # 告訴光標的位置
with open('123.txt', encoding='utf-8') as f1 #不用主動關閉文件句柄

4.初識函數
函數:以功能爲導向,解決重複代碼多 可讀性差的問題
函數的定義:
def 關鍵字 函數名():
函數體
函數執行:函數名()
函數的return:終止函數或給函數的執行者返回值。
函數的參數:
#########實參角度
a.位置參數 按照順序一一對應
def func1(a, b, c):
print(a, b, c)
func1(1, 2, 3) #a=1 b=2 c=3
b.關鍵字傳參 一一對應
def func1(a, b, c):
print(a, b, c)
func1(c=1,b=2,a=3)
c.混合參數(同時包含位置參數和關鍵字傳參),關鍵字參數必須在位置參數後面
def func1(a, b, c):
print(a, b, c)
func1(1,2,c=3)
############形參角度
a.位置參數 按照順序一一對應
def func1(a, b, c):
print(a, b, c)
func1(1, 2, 3) #a=1 b=2 c=3
b.默認參數,默認參數在位置參數的後面。
def func1(a, b, c=3):
print(a, b, c)
func1(1,2)
#############動態參數 args:所有的位置參數,放在一個元組中.kwargs:所有的關鍵字參數,放在一個字典中
def func1(*args, kwargs): #函數的定義的時候 代表聚合
print(args)
print(kwargs)
func1(
[1, 2, 3],
{'name':'cc', 'age':'18'}) #函數的執行的時候 代表打散
形參的順序:位置參數--
args--默認參數--**kwargs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章