DAY10 函式的引數

2022-08-21 09:39:11 字數 1830 閱讀 6935

1.實參:呼叫引數,在括號內傳入的實際值,值可以為常量、變數、表示式或三者的組合

2.形參:定義函式時,在括號內宣告的變數名,用來接受外界傳來的值

1.位置實參:不用明確形參名的傳參方式,一定按照位置給形參傳值

2.關鍵字實參:必須明確形參名字與值為形參傳值,可以不用按照為宗旨

3.注意:    

1.關鍵字實參必須出現在位置實參後

2.多個位置實參還是按照位置傳參

3.關鍵字實參為沒有從位置實參拿到值的形參傳值,可以不用按照指定順序

def fn2(a, b, c, d, e, f):

print(a, b, c, d, e, f)

fn2(10, 20, 30, e=100, f=500, d=200)

def fn(a, b, c):

print(a, b, c)

位置形參可以由 位置實參 與 關鍵字實參 來傳值

fn(10, 20, 30)

fn(a=10, b=20, c=30)

def fn(a=10,b=20):

print(a, b)

預設形參可以由 位置實參 與 關鍵字實參 來傳值,還可以不用傳值(採用自身預設值)

fn()

fn(20, 30)

fn(a=200, b=300)

fn(100) # 就給a傳

fn(b=100) # 就給b傳

2.1 混用

位置形參與預設形參同時存在,預設形參必須在後

def fn1(a,b,c=10,d=20):

print(a, b, c, d)

位置形參必須傳值,預設形參分情況傳值

fn1(100, 200, d=1000)

3.可變長形參

可變長形參會以 元組 形式接受 位置形參與預設形參未接受完的 所有傳入的位置實參,用索引來取第幾個

可變長形參只能由 位置實參 來傳值 

def fn(a, b=10, *args):

print(a, b)

print(args)

小細節:可變長形參只能接受位置實參的值,位置實參還必須在關鍵字實參前,

導致預設形參只能由位置實參來傳值

fn(1, 20, 100, 200) # 1給a 20給b,不能用b=20傳 100,200給args

前提:出現在 * 之後的形參

def fn(a, b=10, *, c, d=20, e):

pass

c,d,e都是出現在*之後,都是關鍵字形參,由於必須由 關鍵字實參 來傳值,沒有順序的強行要求

可變長關鍵字形參:用來接收沒有被關鍵字形參接收完的關鍵字形參,也只能由關鍵字實參來傳值

用字典來存放資料

def fn(**kwargs):

print(kwargs)

fn(a=10,b=20) #

dic =

fn(**dic) #

def fn(a, b, c=10, *args, d, e=20, f, **kwargs):

pass

位置形參:a、b

預設形參:c

可變長位置形參:args

無初值關鍵字形參:d、f

有初值關鍵字形參:e

可變長關鍵字引數:kwargs

1.位置形參與預設形參: 能用 位置實參 關鍵字實參 傳值

2.可變長位置形參:只能 位置實參 傳值

3.所以關鍵字形參:只能 關鍵字實參 傳值

y = 40

def aaa(arg=y):

print(y)

print(arg)

aaa()

#4020

Day 10 遞迴函式

include long func int func函式呼叫 int main long func int n 呼叫形參 已知斐波那契函式1,2,3,5,8 n 1,n得到分段函式n 1時為1 n 2時為2 n 2時為 n 1 n 2 同理若求8的n次方時分段函式n 0時為1 n 1時為8 8 n ...

day10 函式高階

1.1什麼是返回值 返回值就是從函式內部傳遞到函式外部的資料 預設情況下函式內部產生的新資料,在函式外部不能使用 1.2怎麼確定函式返回值 1 python中每個函式都有返回值,預設情況下是none,返回值是什麼就看執行函式體的時候遇到的return關鍵字後面的資料是什麼 如果沒有遇到return,...

day10 函式的高階

順序 位置引數 動態接收位置引數 預設值 動態接收關鍵字引數 位置引數 args 預設引數值 kwargs 一.函式引數 動態傳參 1.動態接受位置引數 在引數位置編寫 表示接收任意內容 動態接收引數的時候要注意 動態引數必須在位置引數後面 2.動態接收關鍵字引數 動態接收關鍵字引數一定在最後面 在...