1. 程式人生 > >python基礎之函式基礎

python基礎之函式基礎

python之函式基礎

 

-----------------------------------------------------------------------------------------------------

函式一般格式

函式的格式包括:

  def 函式名(引數):函式名符合識別符號原則  

#函式格式
def main(*args,**kwargs):
    '''
    函式實現過程
    '''
    return '' #返回值

 

  引數:    沒有引數,有一個引數,有多個引數;

      位置引數,預設引數,動態引數,順序引數;

    沒有引數:定義函式和呼叫函式時括號裡都不寫內容

    有一個引數:傳什麼就是什麼

    有多個引數:位置引數

    位置引數:必須傳,且有幾個引數就傳幾個值

    預設引數:可以不傳,如果不傳就是用預設的引數,如果傳了就用傳的

    動態引數:可以接受任意多個引數,引數名之前加*,習慣引數名args,接收的是按位置傳的值,返回時元組形式,引數名之前加**,習慣引數名kwargs,接收的是按關鍵字傳的值,返回是字典形式,args必須在kwargs之前

    引數順序:位置引數,*args,預設引數,**kwargs

 

 如下程式碼示例:

#
定義一個my_sum函式,傳入a,b的值,返回a+b def my_sum(a,b): #my_sum是函式名,res存總和,之後返回 res = a+b return res #返回值 sum = my_sum(3,4) print(sum)

完整的額引數程式碼:即包含位置引數,動態引數,預設引數

def my_sum(a,b,*args,c=8,**kwargs):   #my_sum是函式名,res存總和,之後返回
    sum = a+b
    for i in args:
        sum+=i
    return sum,kwargs  #
返回值,將預設引數前面的數計算總和,後面的賦值儲存在字典 sum = my_sum(3,4,4,5,6,78,1,default=2,e = 'aaaa',f = 'bbbb') print(sum)

 

函式四個部分:

  函式的定義:如何定義?第一時間想到def    啪啪啪括號冒號這堆

  函式的引數:位置,預設,動態,傳輸格式:位置,*args,預設,**kwargs

  函式的呼叫:變數 = 函式名(),如果函式有返回值,返回一個值,沒有返回值,變數=None

  函式的返回值:

     沒有返回值 :預設返回None

      不寫return:函式內的程式碼執行完畢自動結束

      只寫return:結束一個函式

      return None

    返回一個值:結束了函式且返回一個值,可以是任意的值

    返回多個值 : 多個值之間用逗號隔開,接收的時候可以用一個變數接收(元祖),也可以用等量的多個變數接收

  函式的引數:

    形參:定義函式的時候括號內的引數
      位置引數 :必須傳

      *args :動態引數 可以接收任意多個按位置傳入的引數

      預設引數 : 可以不傳  —— 陷阱

      **kwargs : 動態引數 可以接受任意多個按關鍵字傳入的引數

    實參:呼叫函式的時候函式時候括號內的傳入的實際值

      按照位置傳引數

      按照關鍵字傳引數

      可以混用 位置引數必須在關鍵字傳參之前

      不能對一個引數重複賦值

    預設引數的陷阱:如果預設引數的值是一個可變資料型別,那麼每一次呼叫函式的時候,如果不傳值就公用這個資料型別的資源

 

 函式練習題:

1、寫函式,計算傳入字串中【數字】、【字母】、【空格】 以及 【其他】的個數

  解析:結合字串方法:isdigit() ,isalpha() ,isspace()方法及if語句就可以解決