1. 程式人生 > >Python之路(六)---> 函數、變量

Python之路(六)---> 函數、變量

() 參數名稱 外部 tro 標識 我們 (六) 函數聲明 局部變量

  Python中的函數和數學上的函數定義是不一樣的,從數學的角度上來說函數的定義:給定一個數集A,假設其中的元素為x。現對A中的元素x施加對應法則f,記作f(x),得到另一數集B。假設B中的元素為y。則y與x之間的等量關系可以用y=f(x)表示。我們把這個關系式就叫函數關系式,簡稱函數。函數概念含有三個要素:定義域A、值域C和對應法則f。其中核心是對應法則f,它是函數關系的本質特征。

  Python中的函數是以def關鍵字開頭,後面接函數標識符和圓括號(),任何傳入參數和自變量必須放在圓括號中間,圓括號之間也可以用於定義參數。函數的第一行可以選擇性地添加註釋,函數內容以冒號起始,並且縮進。return[表達式]

結束函數,選擇性的返回一個值給調用方,若沒有return相當於返回None。

  Python定義函數使用def關鍵字,一般格式如下:

#函數的格式:
#def 函數名(參數列表):
#    函數體

  默認情況下,參數值和參數名稱是按函數聲明中定義的順序來匹配的。當然我們也可指定。例:

#不指定時
def test(x,y,z):
     print(x)
     print(y)
     print(z)

test(1,2,3)
#執行結果:x=1,y=2,z=3

#指定時
def test(x,y,z):
     print(x)
     print(y)
     
print(z) test(y=1,x=3,z=4) #執行結果:y=1,x=3,z=4

  變量分為全局變量和局部變量。定義在函數內部的變量擁有一個局部作用域,這個變量我們成為局部變量;定義在函數外的擁有全局作用域,這個變量我們稱為全局變量。例:

total = 0
def sum(num1, num2):
    total = num1 + num2  
    print("局部變量 : ", total)
    return total

sum(10, 20)
print("全局變量 : ", total)

#執行結果:局部變量 :  30
#              全局變量 :  0

  當內部作用域想修改外部作用域的變量時,就要用到global和nonlocal關鍵字了。

  global:修改全局變量,例:

NAME = "alex"
def test():
global NAME
print(NAME)
NAME = "root"
print(NAME)

test()
print(NAME)

#執行結果:

#alex
#root
#root

  nonlocal:修改上一級變量,例:

name = "ton"
def test():
    name = "jock"
    def one1():
        nonlocal name
        name = "root"
    one1()
    print(name)
print(name)
test()

#執行結果:
#ton
#root

Python之路(六)---> 函數、變量