python中令人蛋疼的地方及一些技巧
- 2020 年 1 月 13 日
- 筆記
此文所有程式碼基於python2.7.10語法
令人蛋疼的地方:
- 跳出多重循壞. 如果有一個多重循環(2個以上),要跳出多重循環在python里很蛋疼.沒有goto語句,沒有像java那樣能給每個循環分配一個label,只能把每個循環寫成函數,或者是給每個循環配上flag.假如用flag,要從最裡層的第4個循環調到最外層的第一個循環,就得這麼寫:
flag1 = flag2 = flag3 = flag4 = 1 while flag1: # do something while flag2: # do something while flag3: # do something while flag4: # do something flag2 = flag3 = flag4 = None
如果這幾個循環不是用while,而是要用for來遍歷一個列表,那程式碼就更難看了.
- python不同於很多其他很多語言,多個比較操作符可以在同一行上進行,求值順序為從左到右,對於
3 < 4 < 5
這種表達式的支援有時很省事,寫著很舒服.但是有時忘記了這個規則,用java或者c的語法來看的話,就很蛋疼了.比如3 < 5 == False
,結果是False.乍一看,怎麼都想不明白,無論是(3 > 5) == False
還是3 > (5 == False)
結果都是True.仔細一想,原來是這樣:
>>> 3 > 5 == False # 等同於3>5 and 5==False False
一不小心就理解錯了!
python中一些技巧
- 刪除列表中的元素 在遍歷列表時刪除元素會造成一些意想不到的錯誤,可以用filter或列表解析來代替.