天天看點

Python知識點筆記-條件選擇、循環和函數

Python知識點範圍:條件選擇、循環和函數

條件選擇和循環

  • python的縮進是4個空格,之是以我們的Tab可以,因為友好的編輯器自動為我們轉化了,如果是制表符的話會報錯的;
  • 函數定義、條件判斷、循環條件後要加上冒号;
  • elif是else if的縮寫;
  • for … in、while兩種循環,break退出循環,continue跳過目前循環;
  • for … in [] 指定循環清單裡的内容;
  • for … in周遊集合就是疊代;
  • 索引疊代:for index,name in enumerate(list)。index為list的位置從0開始;
  • 疊代dict,每次拿出的是他的key;
  • 想疊代dict可以通過for … in dict.values()或dict.itervalues()。前者是轉化為包含value的list,後者是直接取出值;
  • dict.itervalues()傳回<dictionary-valueiterator>,可以疊代一些對象;
  • for k,v in dict.items()可疊代dict的key和value;
  • 清單生成式:[x*x for x in range(1, 5)] 生成清單:[1*1, 2*2, 3*3, 4*4];
  • isinstance(x, str)判斷x是否是字元串;
  • 清單生成式的條件過濾,後面直接加if … 符合條件的才能傳回;
  • 清單生成式可以多層循環嵌套,for m in … 後面接着 for n in …,m和n都能取到;

函數

  • 沒有return,函數傳回None;
  • 函數傳回多個值隻是假象,其實傳回的是tuple類型,仍是單一值,隻是省略了括号,讓你看不出來;
  • 一進制二次方程求根公式:(-b±math.sqrt(b*b-4*a*c))/(2*a);
  • 遞歸函數特點:定義簡單,邏輯清楚。經典:漢諾塔算法;
  • 函數調用是通過棧結構實作的,調用一次函數棧幀增加一層,函數結束棧幀減少一層,套用過多,棧幀過大會導緻棧溢出;
  • 預設參數:可以定義某個參數有值,引用時可以不傳入這個參數,取預設設定的值;
  • 多個參數的話,預設參數要排後面。比如:int(x, n=10),如果n這個參數沒有指定的話,預設轉化為10進制;
  • 可變參數(*arg),函數接受的args是tuple類型;