1.5.1 Python函數初識

1、爲何要使用函數?

1,避免代碼重用 2,提升代碼的可讀性c#

2、函數的定義與調用

1,函數定義:bash

def  func():
	''' 函數註釋'''
	print('函數體')
	return 返回值
複製代碼

定義:def關鍵字開頭,空格以後接函數名和圓括號,最後還要加一個冒號。 def是固定的,不能變。 函數名:函數名是包含字母,數字,下劃線的任意組合,可是不能以數字開頭。雖然函數名能夠隨便取名,可是通常儘可能定義成能夠表示函數功能的。 2,函數的調用 返回值=函數名(參數1,參數2)#記得函數名後面加括號 下面咱們先來定義一個求計算字符串長度的函數。假如咱們的len()函數如今不能用了,那麼咱們就須要定義一個函數,求字符串的長度。若是讓咱們一次一次的去寫相同的代碼,會顯得很麻煩。這時候咱們的函數就上場了。app

## 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())

複製代碼

3、函數的返回值

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())


複製代碼

函數沒有返回值的函數ui

#1.不寫return時返回None
def  func():
    a=111
    b=[1,2,3]

ret=func()
print(ret)
複製代碼
#2.只寫一個return時返回None
def  func():
    a=111
    b=[1,2,3]
    return
ret=func()
print(ret)
複製代碼
#3.return None的時候返回None
def  func():
    a=111
    b=[1,2,3]
    return  None
ret=func()
print(ret)


複製代碼

定義一個列表,返回列表的最後一個值spa

#方法一
def func():
    list=['hello','egon',11,22]
    return list[-1]
print(func())
複製代碼
#方法二
def func():
    list=['hello','egon',11,22]
    return list
m,n,k,g=func()#
print(g)
複製代碼

4、函數的參數

1.實參和形參 形參:是函數定義時候定義的參數 實參:函數調用的時候傳進來的參數 2.傳遞多個參數 能夠傳遞多個參數,多個參數之間用逗號隔開。 站在傳參的角度上,調用函數時傳參數有兩種方式:   1.按照位置傳參數   2.按照關鍵字傳參數 用法:1.位置參數必須在關鍵字參數的前面    2.對於一個參數只能賦值一次code

def fun(s):#參數接受:形式參數,簡稱形參
     ''' 計算字符串長度的函數---------函數的功能 參數s:接受要計算的字符串--------參數的信息 return:要計算字符串長度 ---------返回值得信息 '''
     length=0
     for i in s:
         length+=1
     return length

 ret=fun('helloword')#參數傳入:實際參數,簡稱實參
 print(ret)
複製代碼

傳遞多個參數,實現比大小的功能排序

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')
複製代碼

默認參數缺陷:默認參數是一個可變數據類型string

def  default_param(a,l=[]):
        l.append(a)
        print(l)
default_param('alex')
default_param('rgon')

輸出:['alex']
        ['alex', 'egon']
複製代碼

4.動態參數

按位置傳值多餘的參數都由args統一接收,保存成一個元組的形式 按關鍵字傳值接受多個關鍵字參數,由kwargs接收,保存成一個典的形式 *args的應用

1 def fun(a,b,*args):
2     sum=a+b
3     for i in args:
4            sum+=i
5     return sum
6 print(fun(1,5,6,4))#輸出1+5+6+4的和
複製代碼

*kwargs的應用

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))
複製代碼

5、小結

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

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

相關文章
相關標籤/搜索