函式返回值:
函式並非總是直接顯示輸出,相反,它可以處理一些資料,並返回乙個或一組值。函式返回的值被稱為返回值。在函式中,可使用return語句將值返回到呼叫函式的**行。
返回值讓你能夠將程式的大部分繁重工作移到函式中去完成,從而簡化主程式。
下面來看乙個函式,它接受名和姓並返回簡潔的姓名:
defformatted_name(first_name,last_name):
full_name = first_name + "
" +last_name
return
full_name.title()
message = formatted_name("
zi","li"
(message)
#輸出結果:li zi
我們原本只需編寫下面的**就可輸出整潔的姓名,相比於此,上面的**好像太多了:
print("li zi
")
但在需要分別儲存大量名和姓時的大型程式中,像formatted_name()這樣的函式非常有用。你分別儲存名和姓,每當需要顯示姓名時都呼叫這個函式。
函式可返回任何型別的值,包括列表和字典等較複雜的資料結構。例如,下面的函式接受姓名的組成部分,並返回一表示人的字典:
defbuild_person(first_name,last_name):
"""返回乙個字典,其中包含有關乙個人的資訊
"""person =
return
person
message = build_person("
zi","li"
(message)
#輸出結果:
函式build_person()接受名和姓,並將這些值封裝到字典中。這個函式接受簡單的文字資訊,將其放在乙個更適合的資料結構中,讓你不僅能列印這些資訊,還能以其他方式處理它們。也可擴充套件這個函式,使其接受可選值,如年齡、職業或使用者要求的其他資訊。例如,下面的修改讓你還能儲存年齡:
def build_person(first_name,last_name,age=''):"""返回乙個字典,其中包含有關乙個人的資訊
"""person =
ifage:
person[
'age
'] =age
"""在字典中新增age的鍵值對
"""return
person
message = build_person("
zi","
li",age=18)
(message)
#輸出結果:
傳遞列表:
將列表傳遞給函式後,函式就能直接訪問其內容。下面使用函式來提高處理列表的效率。假設有乙個使用者列表,我們要問候其中的每位使用者。下面示例將乙個名字列表傳遞給乙個名為greet_users()的函式,這個函式中問候列表中的每個人:
defgreet_users(names):
"""向列表中的每位使用者都發出簡單的問候
"""for name in
names:
msg = "
hello,
" + name.title() + "!"
(msg)
username = ['
lizi
','qianqian
','qiqi']
greet_users(usernames)
#輸出結果:hello,lizi!
#輸出結果:hello,qianqian!
#輸出結果:hello,qiqi!
輸出完全符合預期,每位使用者都看到了乙個個性化的問候語。每當你要問候一組使用者時,都可呼叫這個函式。
函式編寫指南:
指定描述性名稱,且只在其中使用小寫字母和下劃線
每個函式都應包含簡要地闡述其功能的注釋
建議每行**不超過79字元,若超過時,可在函式定義中輸入左括號後按回車鍵,並在下一行按兩次tab鍵,從而將形參列表和只縮排一層的函式體區別開。
如果程式包含多個函式,可使用兩個空行將相鄰的函式分開。
Python函式引數補充
1.命名關鍵字引數 了解 命名關鍵字引數 在定義函式時,後定義的引數,如下所示,稱之為命名關鍵字引數 特點 1 命名關鍵字實參必須按照key value的形式為其傳值,但大多數情況下沒有必要強制函式使用者按照某種方式傳值 def func x,y,a,b 其中,a和b稱之為命名關鍵字引數 print...
Python 內建函式補充匿名函式
python3 匿名函式 定義乙個函式與變數的定義非常相似,對於有名函式,必須通過變數名訪問 def func x,y,z 1 return x y z print func 1,2,3 匿名函式定義 使用 lambda 來建立匿名函式 匿名函式1.沒有名字 2 函式體自帶return 匿名函式 d...
Python 內建函式補充匿名函式
python3 匿名函式 定義乙個函式與變數的定義非常相似,對於有名函式,必須通過變數名訪問 def func x,y,z 1 return x y z print func 1,2,3 匿名函式定義 使用 lambda 來建立匿名函式 匿名函式1.沒有名字 2 函式體自帶return 匿名函式 d...