函式定義與引數

2022-10-08 23:30:22 字數 4305 閱讀 1367

目錄函式的返回值

函式的引數

'''

1.函式遵循先定義後呼叫的原則

2.函式在定義階段只檢測語法不執行**

3.函式體**只有在呼叫時才會執行函式體**,呼叫的方法時函式名加括號,如果有引數就在括號內傳遞引數

4.函式名相當於變數名指向的是記憶體中函式體**所在的位置

'''#定義函式

def func():

print("i am iron man")

#呼叫函式

func()

>>> i am iron man

#內建函式是在python直譯器中提前定義好的可以直接呼叫

eg: len() count()

#自定義函式,即程式設計師自己定義的函式,自定義函式又分為有參函式和無參函式。

# 無參函式在函式定義階段括號內沒有引數,呼叫函式也不需要在括號內寫引數

def func():

print('hello world')

func()

>>>hello world

# 有參函式在定義函式階段括號內有引數

def func(name):

print(name)

func('jason')

>>>jason

# 空函式即在定義階段,函式體**為pass或者...佔位

def func():

pass

'''空函式能夠在專案初期,羅列出專案的大致功能,讓程式整體框架更加清晰,空函式大量的使用在專案前期的功能框架搭建

'''

#函式的返回值其實就是呼叫函式之後的返回的結果

eg: s = 'hello world'

print(len(s)) #len的返回值是引數的長度

>>>11

# 如何操作函式的返回值

1.當函式體**沒有return關鍵字的之後返回值是none

def func(name):

print(name)

print(func('jason'))

>>>jason #大印的結果

>>>none #返回值的結果

2.當函式體**寫了return但後面沒有跟任何值的時候,返回值也是none

def func(name):

print(name)

return

print(func('jason'))

>>>jason

>>>none

3.當函式體**寫了return並且跟了資料那麼些什麼就返回什麼

def func(name):

print(name)

return 'hello world'

print(func('jason'))

>>>jason

>>>hello world

4.return後面可以跟多個值用逗號間隔開,會自動組成元組並返回

def func(name):

print(name)

return 1,2,'hello'

print(func('jason'))

>>>jason

>>>(1, 2, 'hello')

5.函式體**遇到return後會立刻結束函式的執行

'''

函式的引數分為兩大類:

1.函式定義階段括號內寫的引數

被稱之為『形式引數』 簡稱為形參

2.函式在呼叫階段括號內寫的引數

被稱之為『實際引數』 簡稱為實參

''''''

形參與實參的關係:

形參類似變數名而實參類似變數的值 在呼叫函式是傳入實參,會與形參臨時繫結 函式執行結束後接觸繫結

'''def func(name,age): # name與age是形式引數

print(name,age)

func('jason',12) # jason與12是實參

'''實參jason 臨時繫結給 name 實參12臨時繫結給形參age

函式體**執行期間 可以通過形參直接使用到實參

函式體**執行完,解除繫結

解除繫結後 形參name age 處於沒有繫結之轉台 等待下一次函式呼叫傳入實參進行繫結

'''

# 位置形參

在函式定義階段括號內從左向右依次填寫變數名

def func(name,age):

print(name,age)

# 位置實參

在函式呼叫階段括號內從左向右一次傳入真是資料

func('jason',12)

# 位置引數的特徵

1.位置形參與位置實參再繫結的時候是按照從左往右的順序依次繫結

2.位置形參與位置實參的個數要一致多傳少傳或者不傳都不可以

出現在實參中,指名道姓的給形參傳至,不需要遵循位置,但是位置引數必須在關鍵字引數前面

def func(a, b, c):

print(a,b,c)

func(b=112,a=123,c=789) #當實參都是關鍵字引數使,位置可以隨意調換

>>>123 112 789

func(112,c=789,b=456)

func(c=123,456,478) # 報錯

func(789,a=456,b=456) # 報錯

'''位置實引數必須在關鍵字實參的前面,乙個形參只能繫結乙個實參

'''

出現在形參中  

在函式定義階段就已經給行參進行賦值

如果後續不傳值則預設使用該值

傳入新的值就使用

預設引數必須定義在位置引數後面

預設引數的出現打破了形參與實參之間個數一致的情況

def register(name, age, gender='男'):

print(f'姓名:年齡:性別:')

register('jason',28) # 不傳參就使用預設的

register('tom',17,'女') # 傳參就是用傳遞過來的實參

# 需求:需要定義乙個函式,無論串多少引數都不會報錯

def func(*args):

print(a)

func()

>>>()

func(1,2,3,3,4)

>>>(1,2,3,3,4)

'''*在形參中可以接受多餘的位置引數 並組成元組賦值給*後面的變數名

'''def func(a,b,*args):

print(a,b,args)

func(1,2)

>>>1 2 ()

func(1) # 報錯,因為有兩個形參,所有只是要傳兩個實參

func(1,2,2,2,2,2)

>>>1 2 (2,2,2,2)

'''**在形參中可以接收多餘的關鍵字引數 並且組織成字典的形式賦值給**後面的變數名

'''def func(a,b,**kwargs):

print(a,b,kwargs)

func(a=1,b=2)

>>>1 2 {}

func(a=1,b=2,c=3,d=5)

>>>1 2

# 我們可以使用*和**的組合,定義乙個任意型別任意數量的引數都可以接受並正常執行的函式

def func(*args,**kwargs):

print(args,kwargs)

func()

>>>() {}

func(1,2,a=3,b=4,5) # 報錯

func(1,2,a=3,b=4)

>>>(1, 2)

'''*和**並不是關鍵,後面的變數名可以隨便寫,但是推薦使用arg和kwargs

'''

*和**不單單可以在形參中使用,還可以在實參中使用

def func(*args, **kwargs):

print(args, kwargs)

# *在實參中,可以將列表或者元組打散成位置引數一一傳入

func(*[1,2,3]) 等價於 func(1,2,3)

func(*(1,2,3)) 等價於 func(1,2,3)

# **在實參中可以將字典打散成關鍵字引數一一傳入

func(**)

>>>()

func()

>>>(,) {}

Python函式定義與引數

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段,能提高應用的模組性,和 的重複利用率。函式定義 def 函式名 函式呼叫 函式名 定義函式的簡單規則 任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式內容以冒號起始,並且縮排。return 表示式 結束函式,選擇...

Python筆記 函式定義與函式引數

def 函式名 引數 函式介面 pass return 表示式def 函式關鍵字 函式名 自行定義 引數 需要輸入的變數 函式介面 對函式作用解釋,以及每個引數的意義 pass 函式體,函式需要執行的功能的據體 return 函式所返還的結果,多個值用逗號隔開 函式名 以函式名加括號的方式呼叫,括號...

函式的定義與引數(初學者)

型別識別符號 函式名 宣告部分 語句部分 在定義函式時要用 型別識別符號 指定函式值的型別,即函式帶回來的值的型別。型別識別符號 函式名 形式引數表列 宣告部分 語句部分 例 int max int x,int y 型別識別符號 函式名 例 dummy 注 定義函式時不寫型別識別符號時,系統預設為i...