1. 程式人生 > 實用技巧 >第七天 第六章 函式

第七天 第六章 函式

# 建立一個函式

# def functionname([parameterlist]): 定義 函式名([可選引數]): 可選引數可以為空或者多個
#     ['''comments'''] ['''註釋''']如果寫了這個內容,呼叫時會顯示幫助資訊,即這裡定義的內容
#     [functionbody] [函式體] 函式被呼叫後要執行的功能程式碼。如果有返回值,可以用return語句返回。
#     pass 如果定義一個什麼都不做的函式,可以用pass語句作為點位符。

# 建立一個過濾危險字元的函式:
def filterchar(string):
    '''
    功能:過濾危險字元(如黑客),並將過濾後的結果輸出
    about:要過濾的字串
    沒有返回值
    
''' import re pattern = r'(黑客)|(抓包)|(監聽)|(Trojan)' sub = re.sub(pattern, '@_@', string) print(sub) # 執行此程式碼,將不顯示任何內容,因為這個函式還沒有被呼叫 # 呼叫函式:functionname([parametersvalue]) about = '我是一名程式設計師,喜歡看黑客方面的圖書,想研究一下Trojan' filterchar(about) # 我是一名程式設計師,喜歡看@_@方面的圖書,想研究一下@_@ # 引數傳遞:形參和實參 # 1 在定義函式時,函式名後括號內的引數為‘形式引數’,簡稱‘形參’
# 2 呼叫一個函式時,函式名後括號內的引數為‘實際引數’,簡稱‘實參’ # 傳遞引數時,當實參為不可變物件時,進行值傳遞,為可變物件時,進行引用傳遞 # 區別:進行值傳遞時,形參改變,實參不變,進行引用傳遞時,實參同形參一起改變 # 位置引數:也稱必備引數,按照正確的順序傳到函式中,即呼叫時的數量和位置必須和定義時是一樣的。 # 1、數量一致;2、位置必須與定義時一致; # 為引數設定預設值 # def functionname(...,[parameter1=defaultvalue1]) # [functionbody] # 可變引數有兩種形式,一種是*parameter,另一種是**parameter。
# *parameter:接收任意多個實際引數並將其放到一個元組中。 def printcoffee(*coffeename): print('\n我喜歡的咖啡有:') for item in coffeename: print(item) printcoffee('藍山') printcoffee('藍山','卡布其諾','哥倫比亞') printcoffee('藍山','卡布其諾','摩卡') # 使用列表作為引數時,可在列表名稱前加星號 param=['藍山','卡布其諾','哥倫比亞','巴西'] printcoffee(*param) # **parameter:接收任意多個類似關鍵字引數一樣顯式賦值的實際引數,並將其放到一個字典中。 def printsign(**sign): print() for key,value in sign.items(): print(key ,'的星座是:',value) printsign(綺夢='水平座',香凝='射手座') # 返回值:程式執行完一系列功能,有些需求會產生一個結果,我們可以把這個結果反饋給呼叫者。 def fun_checkout(money): '''功能:計算商品合計金額並進行折扣處理 money:儲存商品金額的列表 返回商品的合計金額和折扣後的金額 ''' money_old = sum(money) # 計算合計金額 money_new = money_old if 500 <= money_old < 1000: # 滿500可享受9折優惠 money_new = '{:.2f}'.format(money_old * 0.9) elif 1000 <= money_old <= 2000: # 滿1000可享受8折優惠 money_new = '{:.2f}'.format(money_old * 0.8) elif 2000 <= money_old <= 3000: # 滿2000可享受7折優惠 money_new = '{:.2f}'.format(money_old*0.7) elif money_old >=3000 : # 滿3000可享受6折優惠 money_new = '{:.2f}'.format(money_old*0.6) return money_old,money_new # 返回總金額和折扣後的金額 #*****************************呼叫函式***********************************# print("\n開始結算……\n") list_money = [] # 定義儲存商品金額的列表 while True: # 請不要輸入非法的金額,否則將丟擲異常 inmoney = float(input("輸入商品金額(輸入0表示輸入完畢):")) if int(inmoney)==0: break # 退出迴圈 else: list_money.append(inmoney) # 將金額新增到金額列表中 money = fun_checkout(list_money) # 呼叫函式 print("合計金額:",money[0],"應付金額:",money[1]) # 顯示應付金額