1. 程式人生 > >Python隨筆9-函式

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__