目錄
簡單來說 函式 就是自己定義的一段 小程式 方便自己調取使用
def 用來定義函式的關鍵字 也就是這個函式的名字
函式執行到return的時候就會返回值 並且把函式內的引數全部清空 變數不再占用記憶體庫空間 退出函式
函式的格式如下就是 #x是進入的引數,也可以不用輸入值,因為函式裡面全部的值都是寫死的&程式設計客棧nbsp;
def ceshi(x):
'''用來測試 計算 如數的值 乘以 3 減去 2 的值
:param x: 輸入乙個數字
:return: 返回乙個計算的結果
'''y = x*3-2
return y
a = ceshi(5)
print(a) #13
呼叫函式就是 函式名加()
函式可以讓反覆的出現的 ** 進行簡化
反覆呼叫**即可 並且便於維護和修改
呼叫函式非常簡單 使用 函式名加() 就可以了 具體如下
def ceshi(x):
'''用來測試 計算 如數的值 乘以 3 減去 2 的值
:param x: 輸入乙個數字
:return: 返回乙個計算的結果
'''y = x*3-2
return y
a = ceshi(5) #呼叫函式ceshi 並且給輸入值是 5
print(a) #13
引數分為 形參 和 實參
形參 只有在被呼叫的時候 才會分配記憶體單元 在呼叫結束之後 會釋放鎖分配的記憶體
實參 就是當前有值的 變數
位置引數 標準呼叫 值 和 關鍵字是一一對應的 按順序的 多和少都不行
def ceshi(w,x,y,z):
print(x)
print(y)
print(z)
ceshi(1,2,3,4)
就好像這裡的 1,2,3,4這四個引數 數量必須和函式裡面需要的引數數量一致 並且他們是按照位置順序依次給 函式中的 w,x,z,y賦值的 所以他們的位置也很重要不能搞混
不用按順序 但是數量 必須和函式需要的值數量是 一直的 用關鍵字形式 比如 x = 1 , b = 3
def ceshi(w,x,y,z): #y會把 輸入的 2到最後乙個元素都被囊括在裡面 ,如果只有乙個值 也沒有關係
print(w)
print(x)
print(y)
print(z)
ceshi(x=1,y=2,z=3,w=4)
位置引數 必須在關鍵字引數的 左邊
在一次呼叫中 關鍵字 是不能被 二次 賦值的 不能覆蓋前面的值
def ceshi(w,x,y,z): #y會把 輸入的 2到最後乙個元素都被囊括在裡面 ,如果只有乙個值 也沒有關係
print(w) #1
print(x) #2
print(y) #3
print(z) #4
ceshi(1,2,z = 3,y = 4)
ps:如果 函式裡面已經定義了 引數值 在呼叫的時候 缺省會使用 函式已有的引數值 到那時如果調
用時自定義了 函式已有的引數值 函式原來的引數值就會被覆蓋
*args 接受位置引數
**kwargs 接受關鍵字引數
*args , **kwargs 組合在一起是必須這樣表示 因為位置引數 一定 在關鍵字引數左側
不管第乙個元素後面又多少元素 y都會全部打包成元祖 視為乙個整體 ,就元沒有元素的話 會視為沒有元素 會返回乙個空的元祖
def ceshi(x,*y): #y會把 輸入的 2到最後乙個元素都被囊括在裡面 ,如果只有乙個值 也沒有關係
print(x) #1
print(y) #(2, 3, 4, 5, 6)
ceshi(1,2,3,4,5,6)
如果傳給y的值 是多個 比如 列表元祖 字典 在前面加個* 就會依次被傳入y中 並不會被視為整體乙個元素賦值給y 但是字典的話 值能保留 可keys
def ceshi(x,*y): #y會把 輸入的 2到最後乙個元素都被囊括在裡面 ,如果只有乙個值 也沒有關係
print(x) #1
print(y) #((2, 3, 4, 5, 6),)
ceshi(1,(2,3,4,5,6))
def ceshi(x,*y): #
print(x) #1
print(y) #(2, 3, 4, 5, 6)
ceshi(1,*[2,3,4,5,6]) #這裡輸入 元祖 字典 列表 都可以
def ceshi(x,*y): #
print(x) #1
prfeznbzrbeint(y) #('a', 'b', 'c')
ceshi(1,*) #輸入字典
返回feznbzrbe值會以字典的形式呈現 這裡只能放關鍵字引數
def ceshi(x,**kwargs): #y會把 a = 1, b = 2, c = 3以字典的形式封裝
print(x) #1
www.cppcns.comprint(kwargs) #
ceshi(1,a = 1, b = 2, c = 3)
如果給**kwargs賦值的本身就是字典的話 就需要在字典前面加上**
def ceshi(x,**kwargs): #y會把 a = 1, b = 2, c = 3以字典的形式封裝
print(x) #1
print(kwargs) #
ceshi(1,**)
還可以數書寫成以下形式 方便接受任何型別的資料
def ceshi(x,*args,**kwargs): #
print(x) #1
print(args) #(2, 3, 4, 5)
print(kwargs) #
ceshi(1,2,3,4,5,a = 1, b = 2, c = 3)
ps:過程就是沒有返回值的函式
但是在python中就算沒有定義返回值 python也會預設給乙個返回值就是none
一般返回乙個值 但是如果返回多個值 就會以元祖的形式返回 就是把元素進行打包進行返回
本文標題: python學習之函式 def
本文位址:
python學習之def函式
def函式就是對乙個新函式的自定義,有簡單的函式也有複雜的函式,以下列舉一些較為簡單的def使用方法。含有自變數的函式 def f x x x 2print x f 2 此處便為函式的呼叫 結果 4也可以寫成這樣 def f x y x 2print y f 2 此處便為函式的呼叫 結果 4不含有變...
Python教程 def 函式
什麼是函式?函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。如何定義函式?任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式的第一行語句可以選擇性地使用文件字串 用於存放函式說明。函式內容以冒號起始,並且縮排。retur...
Python高階學習 函式的定義def
函式在程式設計裡的意思就是乙個 python裡的print,input等都是函式 他們是python的內建函式,帶顏色的就是內建函式 除了文字的綠色,vscode裡大寫以及一些函式的內建引數 那麼,我們如何定義乙個函式呢?def hanshu string 函式裡面的括號填需要的引數,多個引數用逗號...