說一下最近的想法吧腹备,借助大媽的這句話:“現(xiàn)在是學(xué)習(xí)程序的最佳時期哎迄,學(xué)會編程回右,至少創(chuàng)業(yè)的時候不用滿世界哭著喊著去找程序員∈浚”確實如此翔烁,這幾天在忙著組建團(tuán)隊做創(chuàng)業(yè)大賽的事情,有很多idea旨涝,但是由于團(tuán)隊缺少程序猿蹬屹,不知道很多創(chuàng)意是否能夠真正的去實現(xiàn)。文科生出身的虎平老師目前也是處于這樣的困境中颊糜,所以才會不斷地高呼“CS大法好”吧哩治!
下面是今天用了兩個番茄鐘(50min)學(xué)習(xí)的python基礎(chǔ)語句。
正如caos所說的那樣衬鱼,這些基礎(chǔ)語句要像形成肌肉記憶一樣才可以业筏。
你看或許每天50的分鐘就可以幫你走出困境呢~
if語句
注意: Python代碼的縮進(jìn)規(guī)則.
縮進(jìn)請嚴(yán)格按照Python的習(xí)慣寫法:4個空格,不要使用Tab鸟赫,更不要混合Tab和空格蒜胖,否則很容易造成因為縮進(jìn)引起的語法錯誤。
注意: if 語句后接表達(dá)式抛蚤,然后用:表示代碼塊開始台谢。
如果你在Python交互環(huán)境下敲代碼,還要特別留意縮進(jìn)岁经,并且退出縮進(jìn)需要多敲一行回車:
if...else
這兩種條件判斷是“非此即彼”的朋沮,要么符合條件1,要么符合條件2缀壤,因此樊拓,完全可以用一個 if ... else ...語句把它們統(tǒng)一起來
注意: else 后面有個“:”纠亚。
if-elif-else
多層嵌套語句
if
elif
elif
else
for循環(huán)
for 循環(huán)就可以依次把list或tuple的每個元素迭代出來
for 變量 in。筋夏。蒂胞。
while循環(huán)
while循環(huán)每次先判斷 x < N,如果為True条篷,則執(zhí)行循環(huán)體的代碼塊骗随,否則,退出循環(huán)赴叹。
在循環(huán)體內(nèi)鸿染,x = x + 1 會讓 x 不斷增加,最終因為 x < N 不成立而退出循環(huán)稚瘾。
如果沒有這一個語句牡昆,while循環(huán)在判斷 x < N 時總是為True姚炕,就會無限循環(huán)下去摊欠,變成死循環(huán),所以要特別留意while循環(huán)的退出條件柱宦。
break退出循環(huán)
用 for 循環(huán)或者 while 循環(huán)時些椒,如果要在循環(huán)體內(nèi)直接退出循環(huán),可以使用 break 語句掸刊。
continue繼續(xù)循環(huán)
在循環(huán)過程中免糕,可以用break退出當(dāng)前循環(huán),還可以用continue跳過后續(xù)循環(huán)代碼忧侧,繼續(xù)下一次循環(huán)石窑。
注意:continue判斷的位置非常重要。
多重循環(huán)
在循環(huán)內(nèi)部蚓炬,還可以嵌套循環(huán)松逊,我們來看一個例子:
for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print x + y
x 每循環(huán)一次,y 就會循環(huán) 3 次肯夏,這樣经宏,我們可以打印出一個全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3
什么是dict
e.g學(xué)生名字和成績對應(yīng)的2list合成一個list。
我們把名字稱為key驯击,對應(yīng)的成績稱為value烁兰,dict就是通過 key 來查找 value。
花括號 {} 表示這是一個dict徊都,然后按照 key: value, 寫出來即可沪斟。最后一個 key: value 的逗號可以省略。
由于dict也是集合暇矫,len() 函數(shù)可以計算任意集合的大兄髦:
len(d)
3
注意: 一個 key-value 算一個轨域,因此,dict大小為3杀餐。
訪問dict
如何根據(jù)名字來查找對應(yīng)的成績呢干发?
可以簡單地使用 d[key] 的形式來查找對應(yīng)的 value,這和 list 很像史翘,不同之處是枉长,list 必須使用索引返回對應(yīng)的元素,而dict使用key:
注意: 通過 key 訪問 dict 的value琼讽,只要 key 存在必峰,dict就返回對應(yīng)的value。如果key不存在钻蹬,會直接報錯:KeyError吼蚁。
要避免 KeyError 發(fā)生,有兩個辦法:
一是先判斷一下 key 是否存在问欠,用 in 操作符:
if 'Paul' in d:
print d['Paul']
while循環(huán)
while循環(huán)每次先判斷 x < N肝匆,如果為True,則執(zhí)行循環(huán)體的代碼塊顺献,否則旗国,退出循環(huán)。
在循環(huán)體內(nèi)注整,x = x + 1 會讓 x 不斷增加能曾,最終因為 x < N 不成立而退出循環(huán)。
如果沒有這一個語句肿轨,while循環(huán)在判斷 x < N 時總是為True寿冕,就會無限循環(huán)下去,變成死循環(huán)椒袍,所以要特別留意while循環(huán)的退出條件驼唱。
break退出循環(huán)
用 for 循環(huán)或者 while 循環(huán)時,如果要在循環(huán)體內(nèi)直接退出循環(huán)槐沼,可以使用 break 語句曙蒸。
continue繼續(xù)循環(huán)
在循環(huán)過程中,可以用break退出當(dāng)前循環(huán)岗钩,還可以用continue跳過后續(xù)循環(huán)代碼纽窟,繼續(xù)下一次循環(huán)。
注意:continue判斷的位置非常重要兼吓。
多重循環(huán)
在循環(huán)內(nèi)部臂港,還可以嵌套循環(huán),我們來看一個例子:
for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print x + y
x 每循環(huán)一次,y 就會循環(huán) 3 次审孽,這樣县袱,我們可以打印出一個全排列:
A1
A2
A3
B1
B2
B3
C1
C2
C3
如果 'Paul' 不存在,if語句判斷為False佑力,自然不會執(zhí)行 print d['Paul'] 式散,從而避免了錯誤。
二是使用dict本身提供的一個 get 方法打颤,在Key不存在的時候暴拄,返回None
print d.get('Bart')
59
print d.get('Paul')
None
dict的特點
1\查找速度快,無論dict有10個元素還是10萬個元素编饺,查找速度都一樣乖篷。而list的查找速度隨著元素增加而逐漸下降。
不過dict的查找速度快不是沒有代價的透且,dict的缺點是占用內(nèi)存大撕蔼,還會浪費很多內(nèi)容,list正好相反秽誊,占用內(nèi)存小鲸沮,但是查找速度慢。
由于dict是按 key 查找养距,所以诉探,在一個dict中,key不能重復(fù)棍厌。
2\存儲的key-value序?qū)κ菦]有順序的!這和list不一樣
打印的順序不一定是我們創(chuàng)建時的順序竖席,而且耘纱,不同的機(jī)器打印的順序都可能不同,這說明dict內(nèi)部是無序的毕荐,不能用dict存儲有序的集合束析。
3\dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串憎亚、整數(shù)员寇、浮點數(shù)都是不可變的,都可以作為 key第美。但是list是可變的蝶锋,就不能作為 key。
更新dict
要在原來的里面加新元素什往,直接用賦值語句扳缕。
e.g要把新同學(xué)'Paul'的成績 72 加進(jìn)去,用賦值語句:
d['Paul'] = 72
set的特點
set的內(nèi)部結(jié)構(gòu)和dict很像,唯一區(qū)別是不存儲value躯舔,因此驴剔,判斷一個元素是否在set中速度很快。
set存儲的元素和dict的key類似粥庄,必須是不變對象丧失,因此,任何可變對象是不能放入set中的惜互。
最后利花,set存儲的元素也是沒有順序的。
遍歷set
由于 set 也是一個集合载佳,所以炒事,遍歷 set 和遍歷 list 類似,都可以通過 for 循環(huán)實現(xiàn)蔫慧。
直接使用 for 循環(huán)可以遍歷 set 的元素.
s = set(['Adam', 'Lisa', 'Bart'])
for name in s: ...
print name
更新set
由于set存儲的是一組不重復(fù)的無序元素挠乳,因此,更新set主要做兩件事:
一是把新的元素添加到set中姑躲,二是把已有元素從set中刪除睡扬。
添加元素時,用set的add()方法:
s.add(4)
刪除set中的元素時黍析,用set的remove()方法:
s.remove(4)
如果刪除的元素不存在set中卖怜,remove()會報錯。