定義函數的方式: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
可變參數。。。未完待續。。。。函數