python——初識函數
一、函數
1.避免代碼重用
2.提高代碼的可讀性
二、函數的定義和調用
1. def 函數名(參數1,參數2)
‘‘‘ 函數註釋‘‘‘
print(‘函數體‘)
return 返回值
定義 :
def關鍵字開頭,空格之後接函數名和圓括號,最後還要加一個冒號。
def是固定的,不能變。
函數名:函數名是包含字母,數字,下劃線的任意組合,但是不能以數字開頭
函數名一般盡量定義成可以表示函數功能的。
2.函數的調用
返回值=函數名(參數)
假如len()函數現在不能用了,那麽我們就需要定義一個函數,求字符串的長度
1.給定一個字符串,調用函數,當他沒有返回值的時候返回Null def length(): s=‘hello world‘ length=0 for i in s: length+=1 print(length)#11 print(length())#None 2.return 必須放在函數裏,當函數有返回值的時候,必須用變量接收才會有效果 def length(): s=‘hello world‘ length=0 for i in s: length+=1 return length print(length())#結果,11 #計算字符串的長度
三、函數的返回值
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()) 函數有一個或多個返回值
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) 函數沒有返回值的函數View Code
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) 函數沒有返回值的函數
方法一 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) 定義一個列表,返回列表的最後一個值
四、函數的參數
# def fun(s):#參數接受:形式參數,簡稱形參 # ‘‘‘ # 計算字符串長度的函數---------函數的功能 # 參數s:接受要計算的字符串--------參數的信息 # return:要計算字符串長度 ---------返回值得信息 # ‘‘‘ # length=0 # for i in s: # length+=1 # return length # # ret=fun(‘helloword‘)#參數傳入:實際參數,簡稱實參 # print(ret)
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(‘taibai‘,‘female‘) 默認參數
def default_param(a,l=[]): l.append(a) print(l) default_param(‘alex‘) default_param(‘rgon‘) ------------------ [‘alex‘] [‘alex‘, ‘egon‘]
4.動態參數
按位置傳值多余的參數都由args統一接收,保存成一個元組的形式
按關鍵字傳值接受多個關鍵字參數,由kwargs接收,保存成一個字典
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的和
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的應用
python——初識函數