函式的基本型別
1. 無引數,無返回值,一般用於提示資訊列印
2. 無引數,有返回值,多用於資料採集中,比如獲取系統資訊
3. 有引數,無返回值,多用於設定某些不需要返回值的引數設定
4. 有引數,有返回值,一般是計算型的,需要引數,最終也要返回結果
區域性變數:
在函式內部定義的變數,僅作用於函式內部
不同的函式,可以定義相同的區域性變數
作用:為了臨時儲存資料,需要在函式中定義變數來進行儲存
全域性變數:
和區域性變數相比,僅是作用域的不同
當全域性變數和區域性變數出現重複定義的時候,程式會優先執行函式內部定義的變數
school = '**戲劇學院' #全域性變數
def info():
name = '易烊千璽' #區域性變數
print('{}.{}'.format(name,school))
pass
info()
global:如果在函式內部對全部變數進行修改,必須使用global關鍵字宣告
school = '**戲劇學院'
def changeglobal():
global school #函式中修改全域性變數
school = '北京大學'
pass
changeglobal()
print(school)
萬物皆可物件,在函式呼叫的時候,實參傳遞的就是物件的引用
引數傳遞是通過物件引用來完成
匿名函式:
python中使用lambda關鍵字建立匿名函式,所謂匿名即這個函式沒有名字不用def關鍵字建立標準的函式
#語法:
# lambda 引數1,引數2,引數3:表示式
特點:
1. 沒有名字的函式
2. 匿名函式冒號後面的表示式有且只有乙個
3. 自帶return,return結果就是表示式計算後的結果
4. 用於臨時呼叫一次的場景,更多的是將匿名與其他函式配合使用
sum = lambda x,y: x+y
print(sum(11.28,12))
rs = lambda x,y:x if x>y else y
print(rs(8,9))
rs = (lambda x,y:x if x>y else y)(12,0) #直接呼叫
print(rs)
缺點:只能是單個表示式,不能是**塊,只能滿足簡單的場景,複雜邏輯實現不了
#匿名函式遞迴函式:l =
res = max(l,key = lambda k:l[k])
print(res)
如果乙個函式在內部不呼叫其他的函式,而是自己本身的話,這個函式就是遞迴函式
遞迴函式必須有乙個結束條件,否則遞迴無法結束會一直遞迴下去,直到到達最大遞迴深度報錯
#普通函式方法
def func(n):
rs = 1
for i in range(1,6):
rs *= i
pass
return rs
print('5的遞迴結果是:{}'.format(func(5)))
#遞迴方法
def digui(n):
if n == 1:
return 1
else:
return n * digui(n - 1)
pass
pass
print('5的遞迴結果是:{}'.format(digui(5)))
計算過程:
===> fact(5)
# # ===> 5 * fact(4)
# # ===> 5 * (4 * fact(3))
# # ===> 5 * (4 * (3 * fact(2)))
# # ===> 5 * (4 * (3 * (2 * fact(1))))
# # ===> 5 * (4 * (3 * (2 * 1)))
# # ===> 5 * (4 * (3 * 2))
# # ===> 5 * (4 * 6)
# # ===> 5 * 24
# # ===> 120
缺點:難除錯,遞迴條件處理不好容易造成程式無法結束,直到達到最大遞迴錯誤;占用大量記憶體,耗費計算機資源 python 函式高階 python 函式高階
形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...
Python高階 函式高階
閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...
python 函式 高階函式
filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...