我的筆記4.7:慕課網(wǎng)python入門(mén)-廖雪峰

說(shuō)一下最近的想法吧,借助大媽的這句話:“現(xiàn)在是學(xué)習(xí)程序的最佳時(shí)期,學(xué)會(huì)編程,至少創(chuàng)業(yè)的時(shí)候不用滿世界哭著喊著去找程序員?!贝_實(shí)如此,這幾天在忙著組建團(tuán)隊(duì)做創(chuàng)業(yè)大賽的事情,有很多idea,但是由于團(tuán)隊(duì)缺少程序猿,不知道很多創(chuàng)意是否能夠真正的去實(shí)現(xiàn)。文科生出身的虎平老師目前也是處于這樣的困境中,所以才會(huì)不斷地高呼“CS大法好”吧!

下面是今天用了兩個(gè)番茄鐘(50min)學(xué)習(xí)的python基礎(chǔ)語(yǔ)句。
正如caos所說(shuō)的那樣,這些基礎(chǔ)語(yǔ)句要像形成肌肉記憶一樣才可以。

你看或許每天50的分鐘就可以幫你走出困境呢~

if語(yǔ)句

注意: Python代碼的縮進(jìn)規(guī)則.
縮進(jìn)請(qǐng)嚴(yán)格按照Python的習(xí)慣寫(xiě)法:4個(gè)空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因?yàn)榭s進(jìn)引起的語(yǔ)法錯(cuò)誤。

注意: if 語(yǔ)句后接表達(dá)式,然后用:表示代碼塊開(kāi)始。

如果你在Python交互環(huán)境下敲代碼,還要特別留意縮進(jìn),并且退出縮進(jìn)需要多敲一行回車(chē):

if...else

這兩種條件判斷是“非此即彼”的,要么符合條件1,要么符合條件2,因此,完全可以用一個(gè) if ... else ...語(yǔ)句把它們統(tǒng)一起來(lái)
注意: else 后面有個(gè)“:”。

if-elif-else

多層嵌套語(yǔ)句
if
elif
elif
else

for循環(huán)

for 循環(huán)就可以依次把list或tuple的每個(gè)元素迭代出來(lái)
for 變量 in。。。

while循環(huán)

while循環(huán)每次先判斷 x < N,如果為T(mén)rue,則執(zhí)行循環(huán)體的代碼塊,否則,退出循環(huán)。

在循環(huán)體內(nèi),x = x + 1 會(huì)讓 x 不斷增加,最終因?yàn)?x < N 不成立而退出循環(huán)。

如果沒(méi)有這一個(gè)語(yǔ)句,while循環(huán)在判斷 x < N 時(shí)總是為T(mén)rue,就會(huì)無(wú)限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。

break退出循環(huán)

用 for 循環(huán)或者 while 循環(huán)時(shí),如果要在循環(huán)體內(nèi)直接退出循環(huán),可以使用 break 語(yǔ)句。

continue繼續(xù)循環(huán)

在循環(huán)過(guò)程中,可以用break退出當(dāng)前循環(huán),還可以用continue跳過(guò)后續(xù)循環(huán)代碼,繼續(xù)下一次循環(huán)。
注意:continue判斷的位置非常重要。

多重循環(huán)

在循環(huán)內(nèi)部,還可以嵌套循環(huán),我們來(lái)看一個(gè)例子:

for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print x + y
x 每循環(huán)一次,y 就會(huì)循環(huán) 3 次,這樣,我們可以打印出一個(gè)全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3

什么是dict

e.g學(xué)生名字和成績(jī)對(duì)應(yīng)的2list合成一個(gè)list。
我們把名字稱(chēng)為key,對(duì)應(yīng)的成績(jī)稱(chēng)為value,dict就是通過(guò) key 來(lái)查找 value。
花括號(hào) {} 表示這是一個(gè)dict,然后按照 key: value, 寫(xiě)出來(lái)即可。最后一個(gè) key: value 的逗號(hào)可以省略。

由于dict也是集合,len() 函數(shù)可以計(jì)算任意集合的大?。?br> len(d)
3
注意: 一個(gè) key-value 算一個(gè),因此,dict大小為3。

訪問(wèn)dict

如何根據(jù)名字來(lái)查找對(duì)應(yīng)的成績(jī)呢?

可以簡(jiǎn)單地使用 d[key] 的形式來(lái)查找對(duì)應(yīng)的 value,這和 list 很像,不同之處是,list 必須使用索引返回對(duì)應(yīng)的元素,而dict使用key:

注意: 通過(guò) key 訪問(wèn) dict 的value,只要 key 存在,dict就返回對(duì)應(yīng)的value。如果key不存在,會(huì)直接報(bào)錯(cuò):KeyError。

要避免 KeyError 發(fā)生,有兩個(gè)辦法:

一是先判斷一下 key 是否存在,用 in 操作符:

if 'Paul' in d:
print d['Paul']

while循環(huán)

while循環(huán)每次先判斷 x < N,如果為T(mén)rue,則執(zhí)行循環(huán)體的代碼塊,否則,退出循環(huán)。

在循環(huán)體內(nèi),x = x + 1 會(huì)讓 x 不斷增加,最終因?yàn)?x < N 不成立而退出循環(huán)。
如果沒(méi)有這一個(gè)語(yǔ)句,while循環(huán)在判斷 x < N 時(shí)總是為T(mén)rue,就會(huì)無(wú)限循環(huán)下去,變成死循環(huán),所以要特別留意while循環(huán)的退出條件。

break退出循環(huán)

用 for 循環(huán)或者 while 循環(huán)時(shí),如果要在循環(huán)體內(nèi)直接退出循環(huán),可以使用 break 語(yǔ)句。

continue繼續(xù)循環(huán)

在循環(huán)過(guò)程中,可以用break退出當(dāng)前循環(huán),還可以用continue跳過(guò)后續(xù)循環(huán)代碼,繼續(xù)下一次循環(huán)。
注意:continue判斷的位置非常重要。

多重循環(huán)

在循環(huán)內(nèi)部,還可以嵌套循環(huán),我們來(lái)看一個(gè)例子:

for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print x + y
x 每循環(huán)一次,y 就會(huì)循環(huán) 3 次,這樣,我們可以打印出一個(gè)全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3
如果 'Paul' 不存在,if語(yǔ)句判斷為False,自然不會(huì)執(zhí)行 print d['Paul'] ,從而避免了錯(cuò)誤。
二是使用dict本身提供的一個(gè) get 方法,在Key不存在的時(shí)候,返回None
print d.get('Bart')
59
print d.get('Paul')
None

dict的特點(diǎn)

1\查找速度快,無(wú)論dict有10個(gè)元素還是10萬(wàn)個(gè)元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。
不過(guò)dict的查找速度快不是沒(méi)有代價(jià)的,dict的缺點(diǎn)是占用內(nèi)存大,還會(huì)浪費(fèi)很多內(nèi)容,list正好相反,占用內(nèi)存小,但是查找速度慢。

由于dict是按 key 查找,所以,在一個(gè)dict中,key不能重復(fù)。
2\存儲(chǔ)的key-value序?qū)κ菦](méi)有順序的!這和list不一樣
打印的順序不一定是我們創(chuàng)建時(shí)的順序,而且,不同的機(jī)器打印的順序都可能不同,這說(shuō)明dict內(nèi)部是無(wú)序的,不能用dict存儲(chǔ)有序的集合。

3\dict的第三個(gè)特點(diǎn)是作為 key 的元素必須不可變,Python的基本類(lèi)型如字符串、整數(shù)、浮點(diǎn)數(shù)都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。

更新dict

要在原來(lái)的里面加新元素,直接用賦值語(yǔ)句。
e.g要把新同學(xué)'Paul'的成績(jī) 72 加進(jìn)去,用賦值語(yǔ)句:
d['Paul'] = 72

set的特點(diǎn)

set的內(nèi)部結(jié)構(gòu)和dict很像,唯一區(qū)別是不存儲(chǔ)value,因此,判斷一個(gè)元素是否在set中速度很快。
set存儲(chǔ)的元素和dict的key類(lèi)似,必須是不變對(duì)象,因此,任何可變對(duì)象是不能放入set中的。
最后,set存儲(chǔ)的元素也是沒(méi)有順序的。

遍歷set

由于 set 也是一個(gè)集合,所以,遍歷 set 和遍歷 list 類(lèi)似,都可以通過(guò) for 循環(huán)實(shí)現(xiàn)。

直接使用 for 循環(huán)可以遍歷 set 的元素.
s = set(['Adam', 'Lisa', 'Bart'])
for name in s: ...
print name

更新set

由于set存儲(chǔ)的是一組不重復(fù)的無(wú)序元素,因此,更新set主要做兩件事:
一是把新的元素添加到set中,二是把已有元素從set中刪除。
添加元素時(shí),用set的add()方法:
s.add(4)
刪除set中的元素時(shí),用set的remove()方法:
s.remove(4)
如果刪除的元素不存在set中,remove()會(huì)報(bào)錯(cuò)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)。 基本變量及其類(lèi)型 變量 在Python中,...
    victorsungo閱讀 1,976評(píng)論 0 5
  • Python變量和數(shù)據(jù)類(lèi)型 數(shù)據(jù)類(lèi)型 print語(yǔ)句 注釋 Python的注釋以 # 開(kāi)頭,后面的文字直到行尾都算...
    Gaolex閱讀 3,219評(píng)論 5 55
  • Python 是一種相當(dāng)高級(jí)的語(yǔ)言,通過(guò) Python 解釋器把符合語(yǔ)法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 2,049評(píng)論 0 3
  • Python中整數(shù)和浮點(diǎn)數(shù) Python支持對(duì)整數(shù)和浮點(diǎn)數(shù)直接進(jìn)行四則混合運(yùn)算,運(yùn)算規(guī)則和數(shù)學(xué)上的四則運(yùn)算規(guī)則完全...
    璽睿siri閱讀 983評(píng)論 0 0
  • 安化黑茶為什么能降三高、治痛風(fēng)和抗氧化與衰老? 為什么能降血壓? 答:高血壓是血管收縮壓與舒張壓超過(guò)正常水平而導(dǎo)致...
    馬紅彥閱讀 282評(píng)論 0 1

友情鏈接更多精彩內(nèi)容