【PY從0到1】第七節 函數
# 7 第七節 函數 # 函數對於程式語言來說是一塊重量級的內容。 # 他可以實現或者簡化編寫的程式碼。 # 編寫好特定功能的函數後,就可以重複調用函數來完成任務。 # 下面我們就用函數的形式來封裝前面學過的知識。 # 1> 簡單的函數結構 def plus_plus():#<---這是函數名 ''' 運算既定的數字加法 #<-----這是函數功能的注釋 ''' a = 1 + 1 return a#<-----return代表將a值賦值給plus_plus print(plus_plus())#<-----列印plus_plus # 輸出結果如下: # 2 # 上面講的是函數最簡單的結構 # 2> 給函數加上參數 # 我們只要稍作修改就可以使plus_plus變成一個加法器。 def plus_plus(a,b): ''' 一個簡單的加法器 ''' c = a + b print(c) plus_plus(2, 4)#默認a = 2,b = 4 # 輸出為:6 # 又或使用這樣的語句: # plus_plus(a = 2,b = 4) # plus_plus(b = 4,a = 2) # 我們再定義一個新的函數 def introduce(name,age,like_foods='hamburgers'): ''' 一個簡單的自我介紹 ''' a = 'My name is ' b = 'I am ' c = ' years old. ' d = 'I like ' print( a + name.title() + '. ' + b + str(age) + c + d + like_foods + '. ' ) introduce('kitty', 6) # 輸出結果如下: # My name is Kitty. I am 6 years old. I like hamburgers. # 其中like_foods是默認為漢堡。我們一般把有默認值的參數置於末尾。 # 如果想修改默認值,只需要如下操作。 introduce('Tom', 8,like_foods='noodles') # 輸出如下: # My name is Tom. I am 8 years old. I like noodles. # 3> 可選實參 def introduce(name,age,like_foods=''):#給like_foods傳入空字元串 ''' 一個簡單的自我介紹 ''' a = 'My name is ' b = 'I am ' c = ' years old. ' d = 'I like ' if like_foods:#<----如果like_foods不為空,就執行下方,否則執行else。 ''' 做一個判斷,如果沒有輸入喜歡的食物就不輸出相關語句。 ''' print( a + name.title() + '. ' + b + str(age) + c + d + like_foods + '.' ) else: print(a + name.title() + '. ' + b + str(age) + c ) introduce('lisa', 8) # 輸出結果如下: # My name is Lisa. I am 8 years old. introduce('lisa', 8,like_foods='noodles') # 輸出結果如下: # My name is Lisa. I am 8 years old. I like noodles. # 4> 每個函數最好只有一個功能 # 做個簽到模型 def signature_system(did_not_sign_in,already_signed_in): '''提示簽到成功''' while did_not_sign_in: signing = did_not_sign_in.pop() print('\n你好,' + signing.title() + '。簽到成功。') already_signed_in.append(signing) def show_signature(already_signed_in): '''展示簽到列表''' print('\n已經按時簽到的員工:') for signature in already_signed_in: print('- ' + signature) a = ['xixi','didi','huanhuan'] b = [] signature_system(a,b) show_signature(b) # 程式碼運行結果如下: # 你好,Huanhuan。簽到成功。 # 你好,Didi。簽到成功。 # 你好,Xixi。簽到成功。 # 已經按時簽到的員工: # - huanhuan # - didi # - xixi # 在以後的編寫中,盡量做到單個函數只實現一個具體的內容。這樣可以讓程式碼看起來通俗易懂。 # 小技巧: # 用[:]做複製操作 a = ['xixi','didi','lala'] b = a[:] print(b) # 結果如下: # ['xixi', 'didi', 'lala'] # 5> 設置任意數量的參數 # 用*告訴Python我們傳入函數的變數是不確定數量的。 def guest(*b): print("\n歡迎您們的到來!") for a in b: print("- " + a) guest('xixi','didi','huanhuan') #運行結果如下: # # 歡迎您們的到來! # - xixi # - didi # - huanhuan # 將*改為**就可以傳入任意數量的字典。 # 自己編寫函數時一定要遵循以下編寫習慣: # 1>給函數命名時,只是用小寫字母和下劃線。 # 2>函數名通俗易懂,最好以其實現的功能為名稱。 # 3>每個函數都應該有注釋,短注釋用''' ''',長注釋用下面的格式: # ''' # xxxx # ''' # 4>給參數指定默認值時,不要在等號的兩邊添加空格。 # 5>如果函數包含的參數過多,超過了一行79個字元,則要用下方的格式: # def function_name( # parameter_0,parameter_1,parameter_2 # parameter_3,parameter_4,parameter_5): # ''' # xxxxx # ''' # 6>函數與函數之間要有兩個回車分開。 # 7>至少遵循以上編寫原則。