Python複習知識點(三)
阿新 • • 發佈:2018-11-20
- 迴圈結構
while...else 當while語句條件為false時候執行else (else和while平級) 二,for迴圈 和之前的有差別,它支援序列和迭代器作為引數
簡單用法:
和while-else用法一致 for - else中 for 和else是平級關係,在for迴圈結束後,會執行else語句
- 函式定義
首先要明白python中,型別屬於物件,而變數是沒有型別的。對於這句話的理解看一下程式碼 a= [ 1 , 2 , 3 ] a= " Runoob " 以上程式碼中,[1,2,3]是List型別,而" Runoob "是string型別。變數a是沒有型別的,她僅僅是一個物件的引用 它可以是list,也可以是string 明白了上面的理論,再回過頭來看函式引數的問題,傳參的型別可以是可變型別,也可以是不可變型別 可變型別:列表,字典 不可變型別:string tuples number都是不可變的 那具體什麼叫可變,什麼叫不可變。這就和上面提到的型別屬於物件,變數沒有型別 有關係 不可變型別: 例如 a=10, 然後我們在賦值 a=5 這裡實際是新生成了一個物件 10(int型別),然後我們讓a去指向了它 我們並沒有改變a的值,只是讓他重新指向了一個值,之前的5被丟棄了 可變型別: list=[1,2,3,4] 我們現賦值list[2]=10 這裡將第三個元素的值改變了,但是!list本身並沒有動,它只是內容的一部分被修改了 綜上理論,我們可以得出:我們在函式傳參的時候
def fun ( a ) :
a=10
b=2
fun(2)
print ( b ) #這裡輸出的還是2,我們並沒有去改變b (這是傳入不可變型別的物件)
2. 如果傳入可變物件的時候,就相當於我們在傳c++中的引用傳遞,我們如果穿list 或者字典。在函式裡面去修改值,原來的引數也會隨之發生改變
匿名函式
我們使用lambda來建立匿名函式,它只是一個表示式,我們可以在呼叫的時候給他傳參,用法如下
- 全域性區域性變數
例1:
例2:global宣告全域性變數
例3:nonlocal宣告巢狀函式內部修改區域性變數(python3中適用)
- 模組
一個模組匯入只有一次,無論執行多少次import 2. from 模組名 import 物件名 這個宣告是將部分我們需要匯入的函式或者變數匯入進來 3. from 模組名 import * 將一個模組所有內容匯入進來
- 異常處理
如果在except中不寫錯誤型別,我們就預設所有錯誤型別 try-finally 機制,為finally裡面的程式碼塊無論如何都會執行,哪怕前面有return 退出函式,他也會執行完finally程式碼後,再去return
我們也可以自己去主動丟擲異常,讓except捕獲:
Python中特殊語法: 閉包: 在函式巢狀中使用 filter函式用於過濾序列,過濾掉不符合條件的元素 filter ( function, 可迭代物件) 其中函式為判斷函式,將結果為真的組成一個序列返回
reduce函式,用於對引數序列中元素進行累積(這裡不能理解為累計相加!,用傳給reduce中的兩個元素進行操作,得到*的結果在於第三個資料給函式運算,最後得到一個結果)
map函式,會對指定序列進行函式操作,並返回一個列表
- Python中時間日期time模組,random模組
- 檔案操作