python學習 函數(五)

定義函數的方式:python

def 函數名字(參數):
    內容....


#demo
def testDef(x):
     print(x)

testDef(2)

#定義返回參數 return,若是沒有執行完畢沒有 return,則結果爲None
def testDef(x):
    return x*2

#定義空的函數[必須的寫上pass,若是不寫則會報錯信息]:
def testDef(x):
    pass
#,函數預留的時候也能夠用pass
def testDef(x):
    if x > 0:
        return x * 2
    else:
        pass

#python函數返回的結果能夠存在多個結果
def testDef(x, y):
    if x > 0 and y > 0:
        return 2 *x, 2* y
     else:
        return x,y
print(testDef(1,2))
#返回的結果爲:(2, 4)

當返回多個結果的時候,至關於返回的是一個tupl有序列表

函數的參數:app

#帶參函數
def power(x):
    print(x)

#默認參數函數[若是傳遞則按照傳遞算,若是沒有傳遞則算是默認值,默認參數必須的放到傳遞參數後面]
>>> def power(x,y=5):
>>>     print(x,y)
>>> power(2) #結果爲 2 5
>>> power(2,3) #結果爲:2 3

#若是有多個默認參數,能夠選擇性的賦值可是要帶上參數名和參數值
>>> def enroll(name,age=6,sex='男'):
>>>    print(name,age,sex)
>>> enroll('zhangsan')  #zhangsan 6 男
>>> enroll('zhangsan',sex='女')   #zhangsan 6 女

#默認參數的坑
>>> def add_end(l = []):
>>>     l.append('end')
>>>     return l
>>> add_end() #['end']
>>> add_end() #['end']
#緣由:Python函數在定義的時候,默認參數L的值就被計算出來了,即[],由於默認參數L也是一個變量,它指向對象[],每次調用#該函數,若是改變了L的內容,則下次調用時,默認參數的內容就變了,再也不是函數定義時的[]了。
#解決辦法:
#一、每次都調用的時候都傳遞參數add_end([])
#二、定義的時候 默認l = None
>>> def add_end(l=None):
>>>    if l == None:
>>>        l = []
>>>    l.append('end')
>>>    return l

可變參數。。。未完待續。。。。函數

相關文章
相關標籤/搜索