1. 程式人生 > >Python 函式(補充)

Python 函式(補充)

  函式返回值:

  函式並非總是直接顯示輸出,相反,它可以處理一些資料,並返回一個或一組值。函式返回的值被稱為返回值。在函式中,可使用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!

  輸出完全符合預期,每位使用者都看到了一個個性化的問候語。每當你要問候一組使用者時,都可呼叫這個函式。

  函式編寫指南:

  1. 指定描述性名稱,且只在其中使用小寫字母和下劃線
  2. 每個函式都應包含簡要地闡述其功能的註釋
  3. 建議每行程式碼不超過79字元,若超過時,可在函式定義中輸入左括號後按回車鍵,並在下一行按兩次Tab鍵,從而將形參列表和只縮排一層的函式體區別開。
  4. 如果程式包含多個函式,可使用兩個空行將相鄰的函式分開。