Python系列6——函數

函數從某種角度來講也是一種控制流程,這種控制流程的特點在於函數更加的靈活。

1 函數的定義

//函數定義語法
//def 函數名 (形參) : 函數體 

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

def myPrint():
    print("今天你喫飯沒")
    
myPrint()
今天你喫飯沒

定義函數時,需要確定函數名和參數的個數。也可以不傳入參數。

函數體內部可以用return隨時返回結果,函數執行完畢也沒有return語句時,自動return None。

函數可以同時返回多個值,但其實就是將多個返回值打包成爲了一個tuple。

2 函數調用

函數調用有那種方式,直接調用和間接調用。

>>> n = abs    //直接調用
>>> n(-2)
2
>>> abs(-2)    //間接調用
2

3 函數參數

//命名關鍵字參數,作用限制關鍵字參數的名字。使用*進行分隔
def person(name, age, *, city, job):
    print(name, age, city, job)
>>> person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer
//如果函數定義中已經有了一個可變參數,後面跟着的命名關鍵字參數就不再需要一個特殊分隔符*了:
def person(name, age, *args, city, job):
    print(name, age, args, city, job)

函數參數具有多種類型(從函數形參來看):位置參數、默認參數、可變參數、關鍵字參數、命名關鍵字參數、參數組合

//其中x便是位置參數,佔有函數實參的位置
def power(x):
    return x * x
//默認參數
def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
//n=2,便爲默認參數,默認參數可以簡化函數的調用
//.......python在進行定義時,默認參數的值已經被計算出來了,如果默認參數中的值被改變,下次調用時函數值已發生改變
//可變參數,傳入的參數是可變的
def fun(n, *args):   #將多餘的數據打包成數組
    print(n)
    print(args)      # 未拆包
    print(*args)     # 進行拆包
fun(1,2,3,4)

輸出:
1
(2, 3, 4)
2 3 4
//關鍵字參數 **kwargs,用於接收形參的命名參數
def fun(**kwargs):        #打包
    print(kwargs)       #未拆包
    print(*kwargs)  # 進行拆包
fun(a=1, b=2)

輸出:
{'a': 1, 'b': 2}
a b

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章