定義函式def
呼叫函式:函式名(變數)
定義函式是不會執行的,沒有結果返回
只有呼叫函式的時候才會有返回值
返回值是儲存函式的運算結果到變數中繼續操作與運算
print可以輸出但是不儲存返回結果
return只能返回乙個物件,如果需要返回多個,將內容封裝為乙個元組返回
print((result))
使用函式的優點:
降低程式設計的難度(分而治之的思想)
**重用。避免了重複勞動,提供了工作效率。
相同名稱的變數根據其不同的作用域被分為:區域性變數和全域性變數
區域性變數:1).在函式內部定義的變數
2).不同函式,定義相同的區域性變數名稱,互不影響
3).區域性變數為了臨時儲存資料需要在函式中定義變數來進行儲存,這就是它的作用。
全域性變數:在乙個函式中使用,也能在其他函式中使用
1).用global宣告全域性變數
global的本質為生命可以修改全域性變數的指向,即變數可以指向新資料。
不可變型別的全域性變數: 指向的資料不能修改, 不使用global時無法修改全域性變數。
可變型別的全域性變數: 指向的資料可以修改, 不使用global時可以修改全域性變數。
2).不用global的全域性變數宣告法:
#定義接收2個引數的函式
def add2num(a,b):
c=a+b #此處的a,b為形參,形式引數
print c
#呼叫帶有引數的函式
add2num(10,23) #此處的10,23為實參,實際引數
定義時小括號中的引數,用來接收引數用的,稱為 「形參」
呼叫時小括號中的引數,用來傳遞給函式用的,稱為 「實參」
呼叫引數時,
1). 如果引數個數不對,python 直譯器會自動檢查出來,並丟擲 typeerror
2). 如果引數型別不對,python 直譯器就無法幫我們檢查。資料型別檢查可以用內建函式 isinstance 實現
預設引數:預設引數可以降低呼叫函式的難度。
返回值必須列印才能顯示
必選引數:必須傳值
預設引數:如果不傳值,就會採用預設值
def fun( a,b=2, myfun = pow):
"""a接收,b接收,fun接收函式名"""
print('a=:',a,end=';')
print('b=:',b,end=';')
print('result=',myfun(a,b))
#呼叫函式:
fun(5)
fun(5,3,lambda x,y: x+y)
"fun(5)"中的5為形式引數a對應的實際引數,而b得實際引數沒有告知,則採用得是程式預設得引數。
可變引數(*args)
可變引數就是傳入的引數個數是可變的,不固定,可以是1個,2個或任意個,也可以是0個。
程式可以改變引數名,如:a,但預設情況下都設定為args
如果已經有乙個 list 或者 tuple,要呼叫乙個可變引數怎麼辦?
1). python 允許你在 list 或 tuple 前面加乙個 * 號;
2). 把 list 或 tuple 的元素變成可變引數傳進去;
largs = [1,2,3]
func(largs[0],largs[1],largs[2])
func(*largs)
關鍵字引數(kwargs)
關鍵字引數允許傳入 0 個或任意個含引數名的引數;
這些關鍵字引數在函式內部自動組裝為乙個字典 dict;
關鍵字引數用
kwargs;引數組合
1). 引數組合是指可以必選引數、 預設引數、 可變引數和關鍵字引數一起使用。
2). 引數定義的順序必須是:必選引數、 預設引數、可變引數和關鍵字引數。
#定義匿名函式
sum=lambda arg1,arg2:arg1+arg2
#呼叫匿名函式
print("總和為:",sum(11,22))
lambda函式的語法:
lambda [引數1,引數2,....引數n]:expression
它可以接收任何數量的引數,但是只返回乙個表示式的值
應用1:作為引數傳遞
def fun( a,b=2, myfun = pow):
"""a接收,b接收,fun接收函式名"""
print('a=:',a,end=';')
print('b=:',b,end=';')
print('result=',myfun(a,b))
#呼叫函式:
fun(5)
fun(5,3,lambda x,y: x+y)
結果為:
a=5; b=2; result=25
a=5; b=3; result=125
num=[1,2,3]
*num指對num列表解包,1,2,3
這種格式還可以對元組,集合進行解包,解包功能只有python3有
set=
set=集合會自動去重
匿名函式作為引數傳遞的
排序方法:li.sort() sorted
可迭代的:列表、元組、集合
應用2: 作為內建函式的引數
應用1:斐波那契數列
應用2:漢諾塔
應用3:計算階乘
python之函式篇
函式 就是將不同含義的 打包組合以便發揮想象力,進行隨意的拼裝和使用 乙個程式可以按照不同的功能實現,切割成不同的小小個體,而函式就是完成某一部分小小個體功能的 塊 def 建立函式 呼叫函式 函式名 裡面為函式的引數 in 47 def gagax name print name 老 in 48 ...
Python高階篇 python之函式的返回值
返回值簡介 指定返回值與隱含返回值 指定 return 返回值函式舉例 defshowplus x print x returnx 1 num showplus 6 add num 2 print add 輸出結果 隱含 return none 舉例 defshowplus x print x nu...
Python高階篇 python之函式的類的方法
類的成員可以分為三大類 字段 方法和屬性 注 所有成員中,只有普通欄位的內容儲存物件中,即 根據此類建立了多少物件,在記憶體中就有多少個普通字段。而其他的成員,則都是儲存在類中,即 無論物件的多少,在記憶體中只建立乙份。一 字段 字段包括 普通欄位和靜態字段,他們在定義和使用中有所區別,而 最本質的...