python基礎知識——函式
阿新 • • 發佈:2022-05-04
函式其實就是一段可以多次呼叫的程式碼。
1、函式的定義
格式
def 函式名(引數1[ = 預設值1], 引數2[ = 預設值2], ...):
...
return 表示式
函式名的命名規則:
函式名可以是字母、數字或下劃線組成的字串,但是不能以數字開頭。
例如加法操作:
def addFunc(x, y):
return x + y
print addFunc(1, 2)#3
2、函式的引數
在Python中,任何的變數都是物件,所以引數只支援引用傳遞的方式,在這樣的情況下,形式引數和實際引數都指向的是記憶體中的同一個儲存空間。
3、可變引數的問題
在函式的引數前使用識別符號“*”可以實現這個需求。“*”可以引用元組,把多個引數組合到一個元組中:
#coding:UTF-8
#傳遞可變引數
def func(* args):
print args#返回的是元組
func(1, 2, 3)
#coding:UTF-8 #傳遞可變引數 def func(* t, ** d): #('one', 'two') #{'three': '3', 'two': '2', 'one': '1'} print t#返回的是元組 print d#返回的是字典 func('one', 'two', one = '1', two = '2', three = '3')
注意:“*”必須寫在“**”之前。
4、lambda函式
lambda函式用於建立一個匿名函式,函式名未和識別符號進行繫結。
使用lambda函式可以返回一些簡單的運算結果。
格式
lambda 變數1, 變數2, ... : 表示式
另一種方法就是把lambda賦值給一個變數,此時的變數就可以作為函式使用。
格式
#賦值
func = lambda 變數1, 變數2, ... : 表示式
#呼叫
func()
例如加法運算
print (lambda x, y : x + y)(1, 3)
或者
func = lambda x, y : x + y print func(1, 3)
5、Generator函式
生成器(Generator)的作用是一次產生一個數據項,並把資料項輸出。Generator函式可以使得迭代器的效能更佳。
格式
def 函式名(引數列表):
...
yield 表示式
使用的是yield生成資料項。
Generator函式可以使用在for迴圈遍歷,而且可以通過next()方法獲得yield生成的資料項。
range()函式返回的是列表,如
#[0, 1, 2, 3, 4]
print range(5)
若要取出range()函式中的每一個數,可以使用Generator
def func(n):
for i in range(n):
yield i
r = func(5)
print r.next()#0
print r.next()#1
print r.next()#2
print r.next()#3
print r.next()#4