Python之函式篇

2021-09-24 14:17:08 字數 3497 閱讀 9466

定義函式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之函式的類的方法

類的成員可以分為三大類 字段 方法和屬性 注 所有成員中,只有普通欄位的內容儲存物件中,即 根據此類建立了多少物件,在記憶體中就有多少個普通字段。而其他的成員,則都是儲存在類中,即 無論物件的多少,在記憶體中只建立乙份。一 字段 字段包括 普通欄位和靜態字段,他們在定義和使用中有所區別,而 最本質的...