008_定義函數

1,定義函數(定義任何函數其前面要加def)python

s = '定義函數'
def my_len():       #定義函數
    i = 0
    for k in s:
        i += 1
    print(i)
my_len()    #函數調用   #>>>4
2,關於函數中的return
  • 函數沒有返回時,有兩種狀況:
            1,函數中沒有return
2,函數中有return可是沒有加返回值
  • return的做用: return是結束此函數,並返回其要返回的值;
            當程序運行到return時就會結束,不在繼續運行這個函數
def func():
    l = [3,5]
    for i in l:
        print(i)
        if i == 3:
            return      #函數到這後結束,不會執行下面的,若是換成break,
    print('****')       #只是結束了for的循環,還會執行函數,所以會執行下面的語句

ret = func()            #>>>3
print(ret)              #>>>None
3,返回值的3種狀況
1,沒有返回值——>返回None
1.1,不寫return
1.2,只寫return——>結束一個函數的繼續
1.3,return None——>不經常使用

2,返回一個值
2.1,能夠返回任何數據類型
2.2,只要返回就能夠接收
2.3,若是在一個程序中有多個return,那麼只執行第一個

3,返回多個值
3.1,用多個變量接收:有多少返回值就用多少變量接收
3.2,用一個變量接收:獲得的是一個元組
4,參數
  4.1,參數分類
4.1.1,沒有參數
1,定義函數和調用函數時括號裏都不寫內容
4.1.2,有一個參數
2,傳什麼就是什麼
4.1.3,有多個參數
3,位置參數

  4.2,站在實參的角度上:
     4.2.1,按位置傳參
     4.2.2,按關鍵字傳參
     4.2.3,混着用能夠:可是,必須先按照位置傳參,在按關鍵字傳參,不能給同一變量傳多個值
  4.3,站在形參的角度上
4.3.1,位置參數:必須傳,且有幾個參數就傳幾個值
4.3.2,默認參數:能夠不傳,若是不傳就是用默認的參數,若是傳了就用穿的
  4.4,調用函數的時候
4.4.1,按位置傳: 直接寫參數的值
4.4.2,按關鍵字: 關鍵字 = 值
  4.5,定義函數的時候:
4.5.1,位置參數:直接定義參數
4.5.2,默認參數(關鍵字參數):參數名 = ‘默認的值’
4.5.3,動態參數:能夠接受任意多個參數,參數名前加*
4.5.4,定義的順序:必須先定義位置參數,後定義默認參數
5,動態參數 

   5.1,只接收位置參數的動態參數,函數

      加*的爲位置參數的動態參數,動態參數可接收多個元素,並將接收的元素以元組的形式存放spa

def sum(*args):
    n = 0
    for i in args:      # 由於*args爲動態參數,args元組方式處理
        n +=i
    return n

print(sum(1,2))
print(sum(1,2,3))
  5.2,只接收關鍵字參數的動態參數
      加**的參數爲關鍵字參數的動態參數,動態參數能夠接收多個元素,並將接收的元素以字典的形存放
def func(**kwargs):
    print(kwargs)

func(a = 1,b = 2,c = 3)
func(a = 1,b = 2)
  5.3,動態參數的另外一種傳參方式
def func(*args):    #站在形參的角度上,給變量加上*,就是組合全部傳來的值
    print(args)

func(1,2,3)     #>>>(1, 2, 3)
l = [1,2,3]
func(*l)        #>>>(1, 2, 3)  #站在形參的角度上,給一個序列加上*,就是將這個序列按順序分解
6,函數的註釋
def func():
    '''
    這個函數實現了什麼功能
    參數1:
    參數2:
    :return: 返回的什麼
    '''
    pass
相關文章
相關標籤/搜索