Python學習之函式 def

2022-09-24 18:09:10 字數 3075 閱讀 6791

目錄

簡單來說 函式 就是自己定義的一段 小程式 方便自己調取使用

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 函式裡面的括號填需要的引數,多個引數用逗號...