1、什麼是函式
函式就是對實現某一特定功能的**段的封裝。
2、函式的分類
3、函式的定義
a、語法
def 函式名(引數列表)
: 函式體
b、說明
def - python中宣告函式的關鍵字
函式名 - 識別符號,不能是關鍵字;pep8命名規範,見名知意。
() - 固定格式
引數列表 - 引數1,引數2,引數3……;這裡的引數叫形參。
功能是將函式外面的資料傳遞到函式裡面
: - 固定格式
函式體 - 實現功能的**段。乙個完整的函式體包含:函式說明文件、實現函式功能的**段、函式的返回值。
c、初學著宣告函式的步驟
確定函式的功能
根據功能給函式命名
確定形參(看實現函式的功能需不需要外面傳值近來)
實現函式功能
確定函式返回值
注意:函式的在宣告的時候不會執行函式體。只有在呼叫的時候才會執行。
def
my_sum
(num1, num2)
:"""
求兩個數的和。
:param num1:
:param num2:
:return:
"""print
(num1 + num2)
4、函式的呼叫
就是使用函式。
a、語法
函式名(實參列表)
b、說明
函式名 - 這個函式名對應的函式必須是已經宣告過的函式
() - 固定寫法
實參列表 - 實參是用來給新參賦值(用實參給形參賦值的過程就是傳參)
實參和新參要一一對應。
c、呼叫過程
回到函式宣告的位置
用實參給新參賦值(傳參)
執行函式體
執行完函式體就確定並返回返回值
再回到函式呼叫位置,接著執行後面其他**
練習:n的階乘
def
factorial
(num1)
:"""
列印n的階乘
:param num1:
:return:
"""result =
1while num1:
result *= num1
num1 -=
1print
(result)
1、位置引數和關鍵字引數
根據實參的傳遞方式對引數進行的分類
a、位置引數:
實參的位置和形參保持一致,按形參宣告的先後順序一一賦值。
b、關鍵字引數:
呼叫函式的時候以 形參=實參的方式來傳參,這個時候實參的順序無所謂
def
func1
(a, b, c)
:print
(a, b, c)
# 通過位置引數給新參賦值
func1(10,
20,30)
deffunc2
(a, b, c)
:print
(a, b, c)
# 通過關鍵字引數給新參賦值
func2(c =
10, a =
20, b =30)
# 通過位置引數和關鍵字引數結合傳參(注意關鍵字引數必須在位置引數的後面)
func2(10,
20, c =
30)
2、引數預設值
宣告函式的時候,可以給引數賦預設值。
如果乙個形參有預設值了,那麼呼叫函式的時候這個引數就可以不用傳參。
有預設值的形參要放在沒有預設值的後面。
呼叫函式要保證每個引數都有值!
def
fun2
(a, b c=0)
:print
(a, b, c)
fun2(1,
2,3)
fun2(1,
2)fun2(b =
2, a =
1)
3、引數型別說明
型別說明只有提示功能,沒有約束功能。
a、給引數設定預設值,預設值的型別就是引數的型別。
b在形參後面加:型別命,來說明引數型別。這個方式呼叫的時候必須傳參。
c、函式宣告的時候在() 後面加 ->型別名,來說明函式返回值的型別。
def
list_item
(list1:
list
, index =0)
:print
(list1[index]
)
型別說明的好處:
傳參時候,對實參的型別進行說明。
實現函式功能的時候有型別相關的語法提示
def
list_item
(list1:
list
, index =0)
->
int:
return list1[index]
4、不定長引數
函式的引數不確定。
寫乙個函式,計算多個函式的和
方法一:宣告函式的時候,在引數名前加乙個*,可以用來同時獲取多個實參的值。實質是將帶*的引數變成元祖,將多個實參的值作為元祖的元素。
注意:如果函式中既有不定長引數又有普通引數,那麼不定長引數必須放在普通引數的後邊。
def
my_sum
(*nums)
:print
(nums)
print
(type
(nums)
)my_sum(1,
2,3,
4,5,
6)
def
my_sum
(*nums)
:print
(sum
(nums)
)
方法二:在引數名前加兩個*
傳參時需使用關鍵字傳參,會將引數變成乙個字典來獲取關鍵字引數的值,其他關鍵字作為key,實參作為value
def
my_sum
(**nums)
:print
(nums)
print
(type
(nums)
)my_sum(a =1)
# #
def
my_sum2
(**nums)
: total =
0for key in nums:
total += nums[key]
print
(total)
注意:
如果函式中既有不定長引數又有普通引數,那麼不定長引數必須放在普通引數後邊。
兩個*的引數要放在乙個*的後面
def
fun1
(*args,
**kwargs)
:print
(args, kwargs)
fun1(10,
3,4)
fun1(a=
10, b =
3, c =2)
fun1(90,
23, z =
3, y =3)
"""(10, 3, 4) {}
() (90, 23)
"""
1、什麼是返回值
a、返回值就是函式呼叫表示式的值,就是return關鍵字後面的表示式的值。返回值就是將函式裡面的資料傳遞到函式外面。
b、python中每個函式都有返回值,預設是none,如果遇到return ,return 後面是什麼返回值就是什麼。
函式呼叫表示式 - 呼叫函式的語句
return - 關鍵字,只能寫在函式體中。
return功能:
確定函式的返回值
結束函式,執行時遇到return,函式直接結束,並且將return後面的值作為函式的返回值。
def
func1()
:print
('***'
)
result = func1(
)print
(resut)
# none
2、多個返回值
return 值1, 值2, 值3… 相當於返回乙個元祖
def
fun3()
:return1,
2,3fun3(
)print
(type
(fun3())
)
3、怎麼確定函式是否需要返回值
函式執行完成後是否產生新的資料,如果產生新的資料就將這個資料用return返回。
python函式的引數和返回值
1 函式的引數 引數 其實就是一種變數 是一種特殊的變數 專門給函式接受資料使用的 生活場景 函式 行為 引數 行為需要的資源 案例 函式 展示使用者資訊 使用者 生活 創業 需要什麼資料 錢 def show info name name變數 名義上函式執行需要乙個資料 name 形式引數 形參 ...
python函式的引數和返回值
python 中,函式的引數是在小括號中定義和傳遞的 傳遞給函式的引數可以是任意的資料型別,比如 1,hello deffoo x,y 定義引數.print x 的值是 x print y 的值是 y foo 2,3 傳遞引數,簡稱傳參 x 的值是 2y 的值是 3 在定義引數的時候,還可以給它定義...
python 函式 引數 返回值
函式 function 也叫方法 method 是一組可以重複使用的 段。函式分為內部函式和使用者自定義函式。內部函式就是程式語言已經寫好了,使用者無序定義就能直接呼叫的函式,比如說len str print 等,但是這些函式還遠不能滿足實際開發,故使用者可以自定義函式。函式的結構是 def 函式名...