Python學習筆記-2017.5.4
本文章記錄學習過程中的細節和心得:
復習所學課程:
1、文件的操作:
打開文件,對文件的操作打開方式有兩種:
第一種:
f = open("test.txt", "r")#以只讀方式打開文件,此方式不能寫和追加。 f.readline#讀取第一行 f.readline#讀取第二行,以此類推。 f.readlines#讀取所有行到內存中。 f.close#關閉文件
第二種:
with open("test.txt", "r") as f1, open("test2.txt", "r") as f2#以with方式打開文件,操作完成後,會自動關閉文件,不用使用f.close方法。
修改文件,打開時,對文件的方式有以下幾種:
r:只讀方式打開原文件,不能寫和追加。
w:以寫的方式打開文件,如果有原文件,就進行覆蓋,如果沒有原文件,就進行創建,以w方式打開的文件是一個空文件。
a:以追加方式打開文件,不能讀,只能在最後添加內容。
r+:以讀和追加寫的方式打開文件,可讀,可在最後追加,不能在中間編輯,2.7支持在中間編輯,但是新編寫的內容會覆蓋舊的內容。
w+:以讀和寫的方式打開晚間,如果有原文件,就進行覆蓋,如果沒有原文件,就進行創建,以w+方式打開的文件是一個空文件。
a+:以讀和追加的方式打開文件,可讀,可在最後追加。
rb,wb,ab:以二進制操作,適用於視頻處理。
函數的操作:
面向對象的編程:比如Java,使用類,class;
面向過程的編程,如Python,使用def定義的函數;
面向函數的編程,比如Hash等,輸出是固定的,不像python,是可變的。
定義一個函數:
def test(x,y,z, *args, **kwargs): """ **********#參數,註釋等描述 """ print(x) print(y) print(z) print(args) print(kwargs) return True test(1,2,3,4,5,6,niubin="zzz")
變量的輸入,變量作為形參,輸入的是實參,變量可以有,也可以沒有;
變量的類型有位置變量,即上述代碼,變量和實參按照位置一一對應,也可以使用關鍵字變量,比如x=1,y=2,z=3;
關鍵字變量不能位於位置變量之前;
對於不能確定數量的變量,可以使用*args輸入,實際輸入為元祖,上述例子輸入為(4,5,6)
對於不能確定數量的字典,可以使用*kwargs輸入,實際輸入為字典,上述例子輸入為{niubin: “zzz“}
高階函數:
函數中,變量的輸入,可以使用其他的函數。
遞歸:
必須有明確的退出條件;
每一次遞歸,函數的覆蓋範圍必須減少;
效率低下,Python規定的次數是999次。
局部變量和全局變量:
變量都有自己的作用域,全局變量作用於全局,函數內部的變量作用於函數內部,如果函數內部沒有這個變量,逐漸每層向外層查找,直到查找到全局變量;
全局變量盡量不要從函數內部修改,如果需要修改,需要Global聲明;
如果全局變量是列表或者字典形式,可以從函數內部修改。
如果全局變量是字符串,數字等形式,盡量不要修改。
關於修改後的關系,示例代碼如下:
niubin = 32 def test(a,b,*args, **kwargs): print(a) print(b) print(args) print(kwargs) global niubin niubin = 33 print(niubin,"22222")#輸出為33,因為變量已經修改 print(niubin, "!!!!!!")#輸出為32,因為全局變量沒有修改 test(1,2,3,4,5,6, xxx="bbb", yyy="zzzz") print(niubin, "333333333")#輸入為33,因為global已經聲明,所以全局變量被修改,如果沒有global聲明,此處輸出應為32.
Python學習筆記-2017.5.4