1. 程式人生 > >基礎教程——python函式

基礎教程——python函式

定義一個函式:

   1.使用def關鍵字, def + 函式名 +(引數列表)

    2.函式的內容由‘ :’開始,由縮排結束

 

注意:由於python的變數沒有型別,則不像c和c++那麼樣有引數型別

   雖然,沒有引數型別,但是在變數的運算過程中,如果變數所引用的值錯誤依舊會報錯

 

一般格式:
    def 函式名(引數列表):
            函式體
            return

 

知識點1.  引數

   1.不可變型別:整數,字串,元組。

     2.可變型別:列表,字典

不可變型別:

      變數沒有型別,它只是引用了一個量,比如a=10, 10其實就開闢了一塊記憶體的物件,那麼a也只是引用了10這個物件,當再次將a=“123”時,a就引用了字串。

 

def  fun(a):
        a=20

a=10

print(a)


<<<10

 

如以上函式,函式中的引數a變數,是一個區域性變數,也就是說與全域性變數的a引用了同一個10

但是,後面區域性變數的a改變了引用,但是,它並不是全域性變數的a,所以,全域性變數的a一直沒有改變過。由於,python中沒有類似c++的&和指標,所以不可變數無法改變的。

 

  四種引數:

      1.位置引數

      2.關鍵字引數

      3.預設引數

      4.可變引數

   位置引數:顧名思義,位置不可變,一個引數都不可少

   關鍵字引數:通過“ 鍵=值 ”的形式加以指定,可以改變引數的順序

def  fun(a, b):
        return a+b

//正確用法:

fun(a=1, b=1)
fun(b=1, a=1)
fun(1, b=1)
fun(1, a=1)

//錯誤用法

fun(a=1,1)
fun(b=1,1)

也就是說,關鍵字引數一定要在位置引數後面。而關鍵引數之間不具有順序關係

  預設引數:就是為引數提供一個預設的值,這樣這個引數賦不賦值都可以,用法和c++類似,一定要放在位置引數之後。

def fun(a=1):
        print(a)
        return 

fun()

<<1

  可變引數:

      一個* , 帶有一個*的引數以元組的形式匯入(注意:元組不可變)

      兩個* , 帶有兩個*的引數以字典的形式匯入(注意:字典可變)

def funone(*a):
        print(a)

def funtwo(**b)
        print(b)

funone(1,2,3)
>>>(1, 2, 3)
funtwo(a=1,b=2, c=3)
>>{'a':1, 'b':2, 'c':3}

 

注意:存在一種特殊的引數。當*在引數列表中時,*後面的引數就必須用關鍵字傳入

def add(a, b, *, c):
        return a+b+c

add(1,1,c=1)

 

 

作用域

  python中只有模組,類,函式才會引入作用域,其他不會產生作用域。