程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

12-python學習筆記之函數 def

編輯:Python

文章目錄

  • 前言
  • 一、函數的創建以及調用
    • 創建函數
    • 調用函數
  • 二、函數的參數以及返回值
    • 參數
    • 默認參數值
    • 以 list 傳參
    • 關鍵字參數
    • 任意參數
    • 返回值
    • pass 語句
    • 遞歸函數(特殊函數)
  • 總結
    • 函數的作用:
    • 函數的結構:
    • 函數的返回值
    • 函數的傳參:(實參/形參)
      • A:實參角度:
      • B:形參角度:
    • 函數的參數2
      • 形參角度:
    • 遞歸函數


前言

以下都是自己的一些學習筆記,可能有寫的不對的地方,還望各位大佬體諒和加以指正。


函數是一種僅在調用時運行的代碼塊。
您可以將數據(稱為參數)傳遞到函數中。
函數可以把數據作為結果返回。


一、函數的創建以及調用

創建函數

在 Python 中,使用 def 關鍵字定義函數:

def my_function():
print("Hello from a function")

調用函數

如需調用函數,請使用函數名稱後跟括號

def my_function():
print("Hello from a function")
my_function()

二、函數的參數以及返回值

參數

信息可以作為參數傳遞給函數。
參數在函數名後的括號內指定。您可以根據需要添加任意數量的參數,只需用逗號分隔即可。
下面的例子有一個帶參數(fname)的函數。當調用此函數時,我們傳遞一個名字,在函數內部使用它來打印全名:

def my_function(fname):
print(fname + " Gates")
my_function("Bill") # Bill
my_function("Steve") # Steve
my_function("Elon") # Elon

默認參數值

下面的例子展示如何使用默認參數值。
如果我們調用了不帶參數的函數,則使用默認值:

def my_function(country = "China"):
print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

以 list 傳參

您發送到函數的參數可以是任何數據類型(字符串、數字、列表、字典等),並且在函數內其將被視為相同數據類型。
例如,如果您將 list 作為參數發送,它到達函數時仍將是 list(列表):

def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)

關鍵字參數

您還可以使用 key = value 語法發送參數。
參數的順序無關緊要。

def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

任意參數

如果您不知道將傳遞給您的函數多少個參數,請在函數定義的參數名稱前添加 *
這樣,函數將接收一個參數元組,並可以相應地訪問各項:

如果參數數目未知,請在參數名稱前添加 *

def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory") # Rory

返回值

如需使函數返回值,請使用 return 語句:

def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))

注意return 語句 與 break 語句類似,執行後後面的語句不會再執行。

pass 語句

函數定義不能為空,但是如果您出於某種原因寫了無內容的函數定義,請使用 pass 語句來避免錯誤。

def myfunction:
pass

遞歸函數(特殊函數)

Python 也接受函數遞歸,這意味著定義的函數能夠調用自身。

遞歸是一種常見的數學和編程概念。它意味著函數調用自身。這樣做的好處是可以循環訪問數據以達成結果。

開發人員應該非常小心遞歸,因為它可以很容易地編寫一個永不終止的,或者使用過量內存或處理器能力的函數。但是,在被正確編寫後,遞歸可能是一種非常有效且數學上優雅的編程方法。

在這個例子中,tri_recursion() 是我們定義為調用自身 (“recurse”) 的函數。我們使用 k 變量作為數據,每次遞歸時遞減(-1)。當條件不大於 0 時(比如當它為 0 時),遞歸結束。

對於新的開發人員來說,可能需要一些時間來搞清楚其工作原理,最好的方法是測試並修改它。

遞歸的例子:

def tri_recursion(k):
if k > 0:
result = k+tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\n遞歸示例結果\n")
tri_recursion(6)

注意:遞歸函數一定要有結束條件,不然就會變成一個死循環。


總結

函數的作用:

  • 函數以功能(完成一件事)為導向
  • 隨調隨用減少代碼重復性
  • 增強代碼可讀性

函數的結構:

def 函數名():
函數體

函數的返回值

return 在函數中遇到return直接結束函數
return 將數據返回給函數的執行者(調用)
return 如果返回多個元素是以元組的形式返回給函數的執行者(ret1,ret2,ret3=meet()#元組的拆包)

函數的傳參:(實參/形參)

A:實參角度:

  • 位置參數:從左到右,一一對應
  • 關鍵字參數一一對應meet(sex=‘女’,age=25)
  • 混合傳參:一一對應,位置參數一定要在關鍵字參數的前面

B:形參角度:

  • 位置參數與實參角度的位置參數是一種
  • 默認值參數(設置意義:普遍經常使用的)def meet(weight,sex,age=‘女’)

三元運算符:(簡單的 if else )

c = a if a > b else b

函數的參數2

形參角度:

  • 萬能參數1.*args,約定俗稱:args 2.**kwargs
  • *函數定義時,*代表聚合。他將所有位置參數聚合成一個元組,賦值給了args,函數的定義時:**將所有的關鍵字聚合到一個字典中,將這個字典賦值給kwargs
  • 形參角度的參數的順序:位置參數,*args,默認參數,僅限關鍵字參數(了解)(這兩個可互換),**kwargs
  • 形式參數第四個參數:僅限關鍵字參數(在*args和**kwargs之間,必須以關鍵字參數對他進行傳值)(了解)
  • 在函數調用時,*代表打散(元組),**代表打散(字典)

遞歸函數

遞歸函數一定要滿足下面兩個條件:

  • 自己調用自己
  • 有結束條件

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved