1. 程式人生 > >Python學習筆記-2017.5.4

Python學習筆記-2017.5.4

列表 lin 覆蓋範圍 復習 處理 pytho 內部 global txt

本文章記錄學習過程中的細節和心得:

復習所學課程:

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