【文章內(nèi)容簡(jiǎn)介】
hon之if語(yǔ)句If示例,注意縮進(jìn)age = 20if age = 18: print 39。your age is39。, ageprint 39。adult39。else: print 39。age is smaller than 1839。print 39。END39。注意:Python代碼的縮進(jìn)規(guī)則。具有相同縮進(jìn)的代碼被視為代碼塊,上面的3,4行 print 語(yǔ)句就構(gòu)成一個(gè)代碼塊(但不包括第5行的print)。如果 if 語(yǔ)句判斷為 True,就會(huì)執(zhí)行這個(gè)代碼塊??s進(jìn)請(qǐng)嚴(yán)格按照Python的習(xí)慣寫法:4個(gè)空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因?yàn)榭s進(jìn)引起的語(yǔ)法錯(cuò)誤。注意: if 語(yǔ)句后接表達(dá)式,然后用:表示代碼塊開始。如果你在Python交互環(huán)境下敲代碼,還要特別留意縮進(jìn),并且退出縮進(jìn)需要多敲一行回車:2. Python之 ifelifelse要避免嵌套結(jié)構(gòu)的 if ... else ...,我們可以用 if ... 多個(gè)elif ... else ... 的結(jié)構(gòu),一次寫完所有的規(guī)則:if age = 18: print 39。adult39。elif age = 6: print 39。teenager39。elif age = 3: print 39。kid39。else: print 39。baby39。elif 意思就是 else if。這樣一來(lái),我們就寫出了結(jié)構(gòu)非常清晰的一系列條件判斷。特別注意:這一系列條件判斷會(huì)從上到下依次判斷,如果某個(gè)判斷為 True,執(zhí)行完對(duì)應(yīng)的代碼塊,后面的條件判斷就直接忽略,不再執(zhí)行了。3. Python之 for循環(huán)list或tuple可以表示一個(gè)有序集合。如果我們想依次訪問一個(gè)list中的每一個(gè)元素呢?比如 list:Python的 for 循環(huán)就可以依次把list或tuple的每個(gè)元素迭代出來(lái):L = [39。Adam39。, 39。Lisa39。, 39。Bart39。]for name in L: print name注意:name 這個(gè)變量是在 for 循環(huán)中定義的,意思是,依次取出list中的每一個(gè)元素,并把元素賦值給 name,然后執(zhí)行for循環(huán)體(就是縮進(jìn)的代碼塊)。4. Python之 while循環(huán)和 for 循環(huán)不同的另一種循環(huán)是 while 循環(huán),while 循環(huán)不會(huì)迭代 list 或 tuple 的元素,而是根據(jù)表達(dá)式判斷循環(huán)是否結(jié)束。比如要從 0 開始打印不大于 N 的整數(shù):N = 10x = 0while x N: print x x = x + 1while循環(huán)每次先判斷 x N,如果為True,則執(zhí)行循環(huán)體的代碼塊,否則,退出循環(huán)。在循環(huán)體內(nèi),x = x + 1 會(huì)讓 x 不斷增加,最終因?yàn)?x N 不成立而退出循環(huán)。如果沒有這一個(gè)語(yǔ)句,while循環(huán)在判斷 x N 時(shí)總是為True,就會(huì)無(wú)限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。5. Python之 break退出循環(huán)用 for 循環(huán)或者 while 循環(huán)時(shí),如果要在循環(huán)體內(nèi)直接退出循環(huán),可以使用break語(yǔ)句。比如計(jì)算1至100的整數(shù)和,我們用while來(lái)實(shí)現(xiàn):sum = 0x = 1while True: sum = sum + x x = x + 1 if x 100: breakprint sum在循環(huán)體內(nèi),判斷了 x 100 條件成立時(shí),用break語(yǔ)句退出循環(huán),這樣也可以實(shí)現(xiàn)循環(huán)的結(jié)束。6. Python之 continue繼續(xù)循環(huán)在循環(huán)過(guò)程中,可以用break退出當(dāng)前循環(huán),還可以用continue跳過(guò)后續(xù)循環(huán)代碼,繼續(xù)下一次循環(huán)。計(jì)算平均分:L = [75, 98, 59, 81, 66, 43, 69, 85]想要統(tǒng)計(jì)及格分?jǐn)?shù)的平均分,就要把 x 60 的分?jǐn)?shù)剔除掉,這時(shí),利用 continue,可以做到當(dāng) x 60的時(shí)候,不繼續(xù)執(zhí)行循環(huán)體的后續(xù)代碼,直接進(jìn)入下一次循環(huán):for x in L: if x 60: continue sum = sum + x n = n + 17. Python之 多重循環(huán)在循環(huán)內(nèi)部,還可以嵌套循環(huán),我們來(lái)看一個(gè)例子:for x in [39。A39。, 39。B39。, 39。C39。]: for y in [39。139。, 39。239。, 39。339。]: print x + yx 每循環(huán)一次,y 就會(huì)循環(huán) 3 次七、 Python—dict/set1. Pythondict 基本用法用法類似于java的map,寫法為java—map的json寫法d = { 39。Adam39。: 95, 39。Lisa39。: 85, 39。Bart39。: 59}u 可以簡(jiǎn)單地使用 d[key] 的形式來(lái)查找對(duì)應(yīng)的 valueu len(d) 函數(shù)返回dict的長(zhǎng)度u 判斷 key 是否存在,用 in 操作符:if 39。Paul39。 in d: print d[39。Paul39。]u dict供的一個(gè) get 方法,獲取value值,在Key不存在的時(shí)候,返回None: print (39。Bart39。)59 print (39。Paul39。)Noneu Python更新dictdict是可變的,也就是說(shuō),我們可以隨時(shí)往dict中添加新的 keyvalue。比如已有dict:d = { 39。Adam39。: 95, 39。Lisa39。: 85, 39。Bart39。: 59}要把新同學(xué)39。Paul39。的成績(jī) 72 加進(jìn)去,用賦值語(yǔ)句: d[39。Paul39。] = 72如果 key 已經(jīng)存在,則賦值會(huì)用新的 value 替換掉原來(lái)的 value:2. Python中dict的特點(diǎn)u dict的第一個(gè)特點(diǎn)是查找速度快,無(wú)論dict有10個(gè)元素還是10萬(wàn)個(gè)元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。不過(guò)dict的缺點(diǎn)是占用內(nèi)存大,還會(huì)浪費(fèi)很多內(nèi)容,list正好相反,占用內(nèi)存小,但是查找速度慢。u dict的第二個(gè)特點(diǎn)就是存儲(chǔ)的keyvalue序?qū)κ菦]有順序的!這和list不一樣:dict內(nèi)部是無(wú)序的,不能用dict存儲(chǔ)有序的集合。u dict的第三個(gè)特點(diǎn)是作為 key 的元素必須不可變,Python的基本類型如字符串、整數(shù)、浮點(diǎn)數(shù)都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。由于dict是按 key 查找,所以,在一個(gè)dict中,key不能重復(fù)。3. Python之 遍歷dict由于dict也是一個(gè)集合,所以,遍歷dict和遍歷list類似,都可以通過(guò) for 循環(huán)實(shí)現(xiàn)。直接使用for循環(huán)可以遍歷 dict 的 key: d = { 39。Adam39。: 95, 39。Lisa39。: 85, 39。Bart39。: 59 } for key in d:... print key... LisaAdamBart由于通過(guò) key 可以獲取對(duì)應(yīng)的 value,因此,在循環(huán)體內(nèi),可以獲取到value的值。4. Pythonsetu set 持有一系列元素,這一點(diǎn)和 list 很像,但是set的元素沒有重復(fù),而且是無(wú)序的,這點(diǎn)和 dict 的 key很像。創(chuàng)建 set 的方式是調(diào)用 set() 并傳入一個(gè) list,list的元素將作為set的元素: s = set([39。A39。, 39。B39。, 39。C39。])u 由于set存儲(chǔ)的是無(wú)序集合,所以我們沒法通過(guò)索引來(lái)訪問。訪問 set中的某個(gè)元素實(shí)際上就是判斷一個(gè)元素是否在set中。 39。B39。 in s 此方法嚴(yán)格區(qū)分大小寫,如果是小寫b,則返回falseTrue s = set([1, 2, 3]) (4) set添加元素 print s set([1, 2, 3, 4])刪除set中的元素時(shí),用set的remove()方法: s = set([1, 2, 3, 4]) (4) 刪除set中的已有元素,刪之前需判斷元素是否存在,不存在的話會(huì)報(bào)錯(cuò) print sset([1, 2, 3])5. Python之 set的特點(diǎn)的應(yīng)用set的內(nèi)部結(jié)構(gòu)和dict很像,唯一區(qū)別是不存儲(chǔ)value,因此,判斷一個(gè)元素是否在set中速度很快。set存儲(chǔ)的元素和dict的key類似,必須是不變對(duì)象,因此,任何可變對(duì)象是不能放入set中的。最后,set存儲(chǔ)的元素也是沒有順序的。常用來(lái)判斷對(duì)象是否包含在set里。6. Python之 遍歷set由于 set 也是一個(gè)集合,所以,遍歷 set 和遍歷 list 類似,都可以通過(guò) for 循環(huán)實(shí)現(xiàn)。直接使用 for 循環(huán)可以遍歷 set 的元素: s = set([39。Adam39。, 39。Lisa39。, 39。Bart39。]) for name in s:... print name... LisaAdamBart注意:觀察 for 循環(huán)在遍歷set時(shí),元素的順序和list的順序很可能是不同的,而且不同的機(jī)器上運(yùn)行的結(jié)果也可能不同。八、 Python之函數(shù)1. 單返回參數(shù)函數(shù)在Python中,定義一個(gè)函數(shù)要使用 def 語(yǔ)句,依次寫出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào):,然后,在縮進(jìn)塊中編寫