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中一些技巧

  1. 刪除列表中的元素 在遍歷列表時刪除元素會造成一些意想不到的錯誤,可以用filter或列表解析來代替.