python系列七 python函式

2021-08-25 06:08:45 字數 1982 閱讀 9089

*函式是帶名字的**塊,用於定義具體的工作

*需要在程式中多次執行同一項任務時,你無須反覆編寫完成該任務的**,而只需定義乙個執行該任務的函式,反覆呼叫

*通過使用函式,程式的編寫,閱讀,測試和修復都將更容易

定義乙個簡單函式

def print_user():

print("hello!")

print_user()

>>說明:函式用關鍵字def來告訴python要定義乙個函式

>>def後面空格接函式名,在這裡函式名為print_user()

>>函式名後面必須帶冒號(:)

>>所有函式體要縮排

向函式中傳遞資訊

在上面的函式中,如果我想列印任何的字串資訊,該怎麼做?可以按下方法操作

def print_user(s_str):

print(s_str)

print_user("yang")

輸出:yang

在定義print_user()函式時,定義在括號中的s_str變數,我們稱為形參

在呼叫print_user()函式時,我們傳遞了」yang」這個字串,值」yang」就是乙個實參。

實參是呼叫函式傳遞給函式的資訊,這個資訊儲存在形參s_str中。

位置實參

當多個形參的時候,我們傳遞實參時,一定要注意按照形參的位置相對應

例如:

def print_info(name , age):

print("name: "+name +" age: "+str(age))

print_info("yang",28)

-->name: yang age: 28

print_info(28,"yang")

-->name: 28 age: yang

結果千差萬別

關鍵字實參

關鍵字實參是傳遞給函式的名稱-值對,在實參中將形參和值關聯起來,這樣就不會錯了

def print_info(name , age):

print("name: "+name +" age: "+str(age))

print_info(name="yang",age=28)

print_info(age=28,name="yang")

-->name: yang age: 28

-->name: yang age: 28

結果表明,關鍵字實參的順序無關緊要。

使用關鍵字實參時,務必準確地指定函式中的形參名

預設值

編寫函式時,如果發現列印的年齡都是28歲,我們可以定義乙個預設形參。

例如:

def print_info(name , age=28):

print("name: "+name +" age: "+str(age))

可以如下呼叫:

print_info("yang")

print_info("yang" , 30)

print_info(name="yang" , age=31)

使用預設值時,在形參列表中必須把預設值形參放在形參列表的最後,這樣python依然能夠正確地解讀位置實參

在函式傳遞的引數中,也可以傳遞列表,字典,tuple …

函式並非總是顯示輸出列印語句,相反,它可以處理一些資料,並返回乙個或一組值。

函式返回的值稱為返回值。返回值讓程式中的大部分繁重工作放到函式中,我只想要乙個結果。

例如:

def my_sum(a , b):

return a+b

print(my_sum(2,3))

輸出:5

python裝飾器系列 七

裝飾器 利用 call 方法實現單例 所謂單例,是指乙個類的例項從始至終只能被建立一次。單例的實現有多種,這裡以 call 方法來實現 1 class single 2 instance none34 def init self,cls 5 self.cls cls67 def call self,...

python學習系列(七)函式和Lambda表示式

前面幾章全是基礎,語法和資料型別 這一章開始函式的學習 函式,程式語言靈魂,函式的呼叫是重點,它是完成邏輯功能的工具,使我們的 code 邏輯清晰。首先,函式語法格式 def 函式名 引數列表 函式體 看個例項 def fun name,age 30 print 我是 name print 今年 a...

python系列教程 python系列教程

宣告 在人工智慧技術教學期間,不少學生向我提一些python相關的問題,所以為了讓同學們掌握更多擴充套件知識更好的理解人工智慧技術,我讓助理負責分享這套python系列教程,希望能幫到大家!由於這套python教程不是要由所寫,所以不如我的人工智慧技術教學風趣幽默,學起來比較枯燥 但它的知識點還是講...