#建立乙個函式
#def functionname([parameterlist]): 定義 函式名([可選引數]): 可選引數可以為空或者多個
#['''comments'''] ['''注釋''']如果寫了這個內容,呼叫時會顯示幫助資訊,即這裡定義的內容
#[functionbody] [函式體] 函式被呼叫後要執行的功能**。如果有返回值,可以用return語句返回。
#pass 如果定義乙個什麼都不做的函式,可以用pass語句作為點位符。
#建立乙個過濾危險字元的函式:
deffilterchar(string):
'''功能:過濾危險字元(如黑客),並將過濾後的結果輸出
about:要過濾的字串
沒有返回值
'''import
re pattern = r'
(黑客)|(抓包)|(監聽)|(trojan)
'sub = re.sub(pattern, '
@_@'
, string)
(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:
(item)
printcoffee('藍山
')printcoffee('藍山
','卡布其諾
','哥倫比亞')
printcoffee('藍山
','卡布其諾
','摩卡')
#使用列表作為引數時,可在列表名稱前加星號
param=['
藍山','
卡布其諾
','哥倫比亞
','巴西']
printcoffee(*param)
#**parameter:接收任意多個類似關鍵字引數一樣顯式賦值的實際引數,並將其放到乙個字典中。
def printsign(**sign):
()
for key,value in
sign.items():
print(key ,'
的星座是:
',value)
printsign(綺夢='
水平座',香凝='
射手座')#
返回值:程式執行完一系列功能,有些需求會產生乙個結果,我們可以把這個結果反饋給呼叫者。
deffun_checkout(money):
'''功能:計算商品合計金額並進行折扣處理
money:儲存商品金額的列表
返回商品的合計金額和折扣後的金額
'''money_old = sum(money) #
計算合計金額
money_new =money_old
if 500 <= money_old < 1000: #
滿500可享受9折優惠
money_new = '
'.format(money_old * 0.9)
elif 1000 <= money_old <= 2000: #
滿1000可享受8折優惠
money_new = '
'.format(money_old * 0.8)
elif 2000 <= money_old <= 3000: #
滿2000可享受7折優惠
money_new = '
'.format(money_old*0.7)
elif money_old >=3000 : #
滿3000可享受6折優惠
money_new = '
'.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:#
將金額新增到金額列表中
money = fun_checkout(list_money) #
呼叫函式
print("
合計金額:
",money[0],"
應付金額:
",money[1]) #
顯示應付金額
第六章 第七章
第六章 1.屬性文法 是在上下文無關文法的基礎上為每個文法符號 終結符或非終結符 配備若干個相關的 值 稱為屬性 屬性 代表與文法符號相關的資訊,和變數一樣,可以進行計算和傳遞。1 綜合屬性 用於 自下而上 傳遞資訊 在語法樹中,乙個結點的綜合屬性的值,由其子結點的屬性值確定 2 繼承屬性用於 自上...
第六章第七章 基本過濾
1 過濾資料 1 使用where語句 select prod name,prod price from products where prod price 2.50 2 操作符 操 作 符 說 明 等於 不等於!不等於 小於 小於等於 大於 大於等於 between 在指定的兩個值之間 betwee...
C primer plus第六章 第七章筆記
補第四章printf scanf 筆記 關於printf scanf 返回值問題 1 printf 函式返回值,他返回的是列印字元的個數,是其列印輸出功能的附帶用途。具體應用如下 2 scanf 函式返回成功讀取的項數。如果沒有讀取任何項,且需要讀取乙個數字而使用者卻輸入乙個非數值字串,scanf ...