python學習筆記二

2021-07-03 17:30:27 字數 2074 閱讀 4012

第13章 for和while迴圈

1.for比while的執行速度快,python學習手冊的作者一直重啟強調這一點,絕對不嫌囉嗦

2.for的用法特別多

a.for x in list:,跟c#裡的foreach類似,但是對x的修改不能改變原值,除非x是物件的引用(如果要修改原值,只能使用b用法,並且對list[idx]賦值)

b.for idx in range(10):,range可以生成有序整數賦值給idx,可以有三個引數,range(0,10,2),第乙個引數為起始值,第二個引數為終止值的下乙個值(即不包含此值),第三個引數是步進數(即每次遞增的數,這裡也可以是負值進行反向步進),range可以和len並用:range(len(list))來獲取list元素的索引

c.for item in list[::2]:,這裡list[::2]是分片,item是每次取分片中的元素,第三個引數同樣是步進數(也可以為負)。分片與a有同樣的問題

d.for line in open('file.txt','r'):,這個用法會逐行取檔案中的內容

e.for (x,y) in zip(list, list2):,zip會將多個序列中相同索引的元素合併成元組,從而生成乙個元組列表

f.for key in dict:,這裡相當於for key in dict.keys,在新版本中做子簡化(雖然語法上有點怪,但是確實少輸入了5個字元)

g.for (offset,item) in enumerate(list):,offset得到可迭代物件的索引,item得到其元素

h.l = [x+10 for x in list],列表解析 [結果表示式 for x in list if x滿足的條件],居然還可以[x+y for x in 'abc' for y in 'lmn'],結果是['al','am','an','bl','bm','bn','cl','cm','cn']

g.for root,dirs,files in os.walk(path):,遍歷資料夾,root儲存path根目錄路徑,dirs儲存根目錄下的資料夾名(不帶完整路徑),files儲存檔名(不帶完整路徑)

3.for和while語句比其它語言多乙個else塊,只有當迴圈裡沒有執行過break時才會執行else塊裡的**(在以往的程式設計中確實有遇到這樣的需求,可見python滿足了經驗的需求)

4.dict的初始化可以使用zip來簡化dict(zip(keys, values))

5.zip會以最短長度的序列為準對結果進行截斷

6.map(none, list, list2),map與zip型別,不同的是將以第乙個引數填充短序列造成的空缺

7.file = open('file.txt','r'),file有三種讀取方式

file.read() #讀取整個檔案(費記憶體)

file.read(1) #read by charactor,file=open('file.txt','rb')後跟file.read(1)表示讀取位元組塊

file.readline() #read line by line

file.readlines() #read whole file to list include lines

file.xreadlines() #按需求載入文字列

8.迭代器:

file.readline()相當於執行了迭代器file.next(),不同的時當執行file.next()到達檔案末尾會丟擲stopexception異常(其它型別迭代器需要iter(list)轉換一下)

sorted(list) #使用迭代將list重新排序

sum(list) #使用迭代將list元素內容相加

any(list) #使用迭代將所有元素or求結果

all(list) #使用迭代將所有元素and求結果

'&&'.join(strlist) #使用迭代在所有字串元素中間插入&&得到乙個字串

list(listable) #使用迭代建立可迭代物件的list物件

tuple(listable) #使用迭代建立可迭代物件的元組新物件

9.pass是空語句

10.賦值語句不能出現在應該是表示式出現的場合(這個很讚!)例如c語言中的if (x=next())就不能在python中使用

python學習筆記(二)

集合 set是可變的集合,frozenset是不可變的集合 1.構造集合 s set abcde s set a b c s set abc def ghi s frozenset abcde 2.集合操作 1.新增元素 s.add b 2.刪除元素 s.remove obj 當該元素不存在時丟擲異...

Python學習筆記(二)

換了本書,開始看 python核心程式設計 從第三章開始看。只記一些與c c 不同的地方,一些相同之處略去不提。3.1語句與語法 1 跨行一般用反斜槓 有兩個例外,乙個是在括號裡,二是三引號中 print what the hell you waiting for?2推薦用四個空格寬度代替製表符縮排...

python學習筆記(二)

python數值處理 在互動模式下,把python當作計算器用不錯。1 整數做除法運算,除不盡時,取較小的那個數。如 7 3 2 7 3 3 不是 2哦 2 等號 用於給變數賦值,雙等號 用於數值比較。如 width 20 height 5 9 width height 900 if x 0 pri...