Python 函式(補充)
阿新 • • 發佈:2018-11-08
函式返回值:
函式並非總是直接顯示輸出,相反,它可以處理一些資料,並返回一個或一組值。函式返回的值被稱為返回值。在函式中,可使用return語句將值返回到呼叫函式的程式碼行。
返回值讓你能夠將程式的大部分繁重工作移到函式中去完成,從而簡化主程式。
- 返回簡單值:
下面來看一個函式,它接受名和姓並返回簡潔的姓名:
def formatted_name(first_name,last_name):
full_name = first_name + " " + last_name
return full_name.title()
message = formatted_name(" zi","li")
print(message)
#輸出結果:Li Zi
我們原本只需編寫下面的程式碼就可輸出整潔的姓名,相比於此,上面的程式碼好像太多了:
print("Li Zi")
但在需要分別儲存大量名和姓時的大型程式中,像formatted_name()這樣的函式非常有用。你分別儲存名和姓,每當需要顯示姓名時都呼叫這個函式。
- 返回字典:
函式可返回任何型別的值,包括列表和字典等較複雜的資料結構。例如,下面的函式接受姓名的組成部分,並返回一表示人的字典:
def build_person(first_name,last_name):
"""返回一個字典,其中包含有關一個人的資訊"""
person = {"first":first_name,"last":last_name}
return person
message = build_person("zi","li")
print(message)
#輸出結果:{'first':'zi','last':'li'}
函式build_person()接受名和姓,並將這些值封裝到字典中。這個函式接受簡單的文字資訊,將其放在一個更適合的資料結構中,讓你不僅能列印這些資訊,還能以其他方式處理它們。也可擴充套件這個函式,使其接受可選值,如年齡、職業或使用者要求的其他資訊。例如,下面的修改讓你還能儲存年齡:
def build_person(first_name,last_name,age=' '):
"""返回一個字典,其中包含有關一個人的資訊"""
person = {"first":first_name,"last":last_name}
if age:
person['age'] = age
"""在字典中新增age的鍵值對"""
return person
message = build_person("zi","li",age=18)
print(message)
#輸出結果:{'first':'zi','last':'li','age':18}
傳遞列表:
將列表傳遞給函式後,函式就能直接訪問其內容。下面使用函式來提高處理列表的效率。假設有一個使用者列表,我們要問候其中的每位使用者。下面示例將一個名字列表傳遞給一個名為greet_users()的函式,這個函式中問候列表中的每個人:
def greet_users(names):
"""向列表中的每位使用者都發出簡單的問候"""
for name in names:
msg = "Hello," + name.title() + "!"
print(msg)
username = ['lizi','qianqian','qiqi']
greet_users(usernames)
#輸出結果:Hello,Lizi!
#輸出結果:Hello,Qianqian!
#輸出結果:Hello,Qiqi!
輸出完全符合預期,每位使用者都看到了一個個性化的問候語。每當你要問候一組使用者時,都可呼叫這個函式。
函式編寫指南:
- 指定描述性名稱,且只在其中使用小寫字母和下劃線
- 每個函式都應包含簡要地闡述其功能的註釋
- 建議每行程式碼不超過79字元,若超過時,可在函式定義中輸入左括號後按回車鍵,並在下一行按兩次Tab鍵,從而將形參列表和只縮排一層的函式體區別開。
- 如果程式包含多個函式,可使用兩個空行將相鄰的函式分開。