Python隨筆9-函式
函式就是一個程式段,給一個函式名、寫一些語句,然後就可以在任意地方使用這個函式任意次數,可以大大的降低工作量
函式的定義:
def 函式名(引數):
語句
def printMyAddress(address): print("my address is %s"% address) printMyAddress("BJ") #主程式呼叫函式
引數:
分為形參和實參,所謂形參就是函式定義時的引數(形式上的引數不佔記憶體);
實參就是實際的引數,在呼叫函式時傳入的引數(佔記憶體),實參分為位置實參和關鍵字實參
位置實參就是在有多個形參時,傳入的實參按照順序一一對應,要保準實參的個數和形參個數一致,不然會報錯
關鍵字實參就是使用=,形參=實參的方式傳值,不需要管順序,只能給一個形參賦一次值
兩種方式可以混合使用,但是位置實參必須在前面
引數可以有預設值,在呼叫函式時如果不給函式實參,那麼久使用預設值
當不確定需要傳入多少引數時,可以在形參定義時使用*(收集引數),*args(列表),**kwargs(字典)來表示
def function1(*args,**kwargs): print(args) print(kwargs) function1(*[1,2,3,4,5],**{'loc':'BJ'})
結果:
(1, 2, 3, 4, 5) {'loc': 'BJ'}
返回值:
函式是不會直接輸出任何東西的,當它處理完資料之後會返回一個值或一組值, 使用return可以給主程式返回函式執行的結果
def info(name,address): return name + " "+ address print(info('Tom','BJ'))
結果:
Tom BJ
作用域:
變數分為區域性變數和全域性變數
區域性變數是在函式內部的,與函式外部無關(同名也無關),在函式執行時建立,函式執行之前或結束後不存在,Python提供記憶體管理機制處理變數的回收,變數生效的部分叫做變數的作用域
全域性變數是在主程式中定義的變數,Python允許你使用它只要你不試圖修改它,如果函式的任意部分想要修改這個變數,那麼Python會建立一個區域性變數但不會修改全域性變數
def calculateTax(price,tax_rate): " taxTotal總價格" taxTotal = price * tax_rate my_price = 100 #函式內部修改my_price print("Function inside my_price is :",my_price) #此處列印my_price為全域性變數 return taxTotal my_price = int(input("Enter a price:")) totalPrice = calculateTax(my_price,8) print("price = ",my_price,"Total price = ",totalPrice) print("Outside my_price is:",my_price)
結果:
Enter a price:5 Function inside my_price is : 100 price = 5 Total price = 40 Outside my_price is: 5
命名規則:
1.模組名和包名採用小寫字母並且以下劃線分隔單詞的形式;
如:regex_syntax,py_compile,_winreg
2.類名或異常名採用每個單詞首字母大寫的方式;
如:BaseServer,ForkingMixIn,KeyboardInterrupt
3.全域性或者類常量,全部使用大寫字母,並且以下劃線分隔單詞;
如:MAX_LOAD
4.其餘變數命名包括方法名,函式名,普通變數名則是採用全部小寫字母,並且以下劃線分隔單詞的形式命名。
如:my_thread
5.以上的內容如果是內部的,則使用下劃線開頭命名。
如:__init__,__new__