1. 程式人生 > >python授課之函數

python授課之函數

技術分享 gif inf 我們 長度 多余 部分 alt ddd

函數

一、為什麽要使用函數?

   1.避免代碼重用

   2.提高代碼的可讀性

二、函數的定義與調用

1. def 函數名(參數1,參數2)

    ‘‘‘ 函數註釋‘‘‘

    print(‘函數體‘)

    return 返回值

  定義:def關鍵字開頭,空格之後接函數名和圓括號,最後還要加一個冒號。

    def是固定的,不能變。

  函數名:函數名是包含字母,數字,下劃線的任意組合,但是不能以數字開頭。雖然函數名可以隨便取名,但是一般盡量定義成可以表示函數功能的。

2.函數的調用

     返回值=函數名(參數1,參數2)#記得函數名後面加括號

下面我們先來定義一個求計算字符串長度的函數。假如我們的len()函數現在不能用了,那麽我們就需要定義一個函數,求字符串的長度。如果讓我們一次一次的去寫相同的代碼,會顯得很麻煩。這時候我們的函數就上場了。

技術分享圖片
1.給定一個字符串,調用函數,當他沒有返回值的時候返回Null
def  length():
        s=hello world
        length=0
        for i in s:
                length+=1
        print(length)
print(length())


2.return 必須放在函數裏,當函數有返回值的時候,必須用變量接收才會有效果
def  length():
        s=hello world
        length=0
        for i in s:
                length
+=1 return length print(length())
計算字符串長度

三、函數的返回值

1.return的作用:結束一個函數的執行

2.首先返回值可以是任意的數據類型。

3.函數可以有返回值:如果有返回值,必須要用變量接收才有效果

也可以沒有返回值:

  沒有返回值的時候分三種情況:

    1.當不寫return的時候,函數的返回值為None

    2.當只寫一個return的時候,函數的返回值為None

    3.return None的時候,函數的返回值為None(幾乎不用)

4.return返回一個值(一個變量)

5.return返回多個值(多個變量):多個值之間用逗號隔開,以元組的形式返回。

                接收:可以用一個變量接收,也可以用多個變量接收,返回幾個就用幾個變量去接收

技術分享圖片
def  func():
        a=111
        b=[1,2,3]
        c={a:15,b:6}
       #return a#返回一個值
       #return a,b,c#返回多個值,變量之間按逗號隔開,以元組的形式返回
print(func())
函數有一個或多個返回值 技術分享圖片
def func4():
    print (1111111)
    return#結束一個函數的執行
    print (1242451)
func4()
return的作用

四、函數的參數

1.實參和形參
形參:是函數定義時候定義的參數
實參:函數調用的時候傳進來的參數
2.傳遞多個參數
可以傳遞多個參數,多個參數之間用逗號隔開。
站在傳參的角度上,調用函數時傳參數有兩種方式:
  1.按照位置傳參數
  2.按照關鍵字傳參數
用法:1.位置參數必須在關鍵字參數的前面
   2.對於一個參數只能賦值一次
技術分享圖片
def my_max(a,b):#位置參數:按順序定義參數
    if a>b:
        return a
    else:
        return b
# 站在傳參的角度上
print(my_max(20,30))
print(my_max(10,20))# 1.按照位置傳參
print(my_max(b=50,a=30))# 2.按照關鍵字傳參
print(my_max(10,b=30))#3.位置和關鍵字傳參混搭
傳遞多個參數,實現比大小的功能

3.默認參數

用法:為什麽要用默認參數?將變化比較小的值設置成默認參數(比如一個班的男生多,女生就幾個,就可以設置個默認值參數)

定義:默認參數可以不傳,不傳的時候用的就是默認值,如果傳會覆蓋默認值。

   默認的值是在定義函數的時候就已經確定了的

技術分享圖片
def stu_info(name,sex = "male"):
    """打印學生信息函數,由於班中大部分學生都是男生,
        所以設置默認參數sex的默認值為‘male‘
    """
    print(name,sex)
stu_info(alex)
stu_info(海燕,female)
默認參數

4.動態參數

按位置傳值多余的參數都由args統一接收,保存成一個元組的形式

按關鍵字傳值接受多個關鍵字參數,由kwargs接收,保存成一個典的形式

技術分享圖片
def fun(a,b,*args):
    sum=a+b
    for i in args:
           sum+=i
    return sum
print(fun(1,5,6,4))#輸出1+5+6+4的和
*args 技術分享圖片
def fun(a,b,**kwargs):
    print(a,b,kwargs)

# 按照關鍵字傳參數
fun(a = 10,b = 20,cccc= 30,dddd = 50)#輸出10 20 {‘cccc‘: 30, ‘dddd‘: 50}





def f(a,b,*args,defult=6,**kwargs):
    #位置參數,*args, 默認參數,**kwargs
    # print(a,b,args,defult,kwargs)
    return a,b,args,defult,kwargs

#傳參數的時候:必須先按照位置傳參數,再按照關鍵字傳參數
print(f(1,2,7,8,ccc=10,der=5))
**kwargs

五、小結

1.定義:def 關鍵詞開頭,空格之後接函數名稱和圓括號()。
2.參數:圓括號用來接收參數。若傳入多個參數,參數之間用逗號分割。
    參數可以定義多個,也可以不定義。
    參數有很多種,如果涉及到多種參數的定義,應始終遵循位置參數、*args、默認參數、**kwargs順序定義。
    如上述定義過程中某參數類型缺省,其他參數依舊遵循上述排序
3.註釋:函數的第一行語句應該添加註釋。
4.函數體:函數內容以冒號起始,並且縮進。
5.返回值:return [表達式] 結束函數。不帶表達式的return相當於返回 None

def 函數名(參數1,參數2,*args,默認參數,**kwargs):
        """註釋:函數功能和參數說明"""
        函數體
        ……
        return 返回值
技術分享圖片

五、小結

1.定義:def 關鍵詞開頭,空格之後接函數名稱和圓括號()。
2.參數:圓括號用來接收參數。若傳入多個參數,參數之間用逗號分割。
    參數可以定義多個,也可以不定義。
    參數有很多種,如果涉及到多種參數的定義,應始終遵循位置參數、*args、默認參數、**kwargs順序定義。
    如上述定義過程中某參數類型缺省,其他參數依舊遵循上述排序
3.註釋:函數的第一行語句應該添加註釋。
4.函數體:函數內容以冒號起始,並且縮進。
5.返回值:return [表達式] 結束函數。不帶表達式的return相當於返回 None

def 函數名(參數1,參數2,*args,默認參數,**kwargs):
        """註釋:函數功能和參數說明"""
        函數體
        ……
        return 返回值

python授課之函數