第七天 第六章 函式

2022-09-13 02:54:14 字數 3162 閱讀 6083

#

建立乙個函式

#def functionname([parameterlist]): 定義 函式名([可選引數]): 可選引數可以為空或者多個

#['''comments'''] ['''注釋''']如果寫了這個內容,呼叫時會顯示幫助資訊,即這裡定義的內容

#[functionbody] [函式體] 函式被呼叫後要執行的功能**。如果有返回值,可以用return語句返回。

#pass 如果定義乙個什麼都不做的函式,可以用pass語句作為點位符。

#建立乙個過濾危險字元的函式:

deffilterchar(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(綺夢='

水平座',香凝='

射手座')#

返回值:程式執行完一系列功能,有些需求會產生乙個結果,我們可以把這個結果反饋給呼叫者。

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 ...