說(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ò)。