python學習筆記二

來源:互聯網
上載者:User

標籤:python   筆記   

第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學習筆記二

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.