函式第二天

2022-07-24 06:30:14 字數 3185 閱讀 1096

形參:在定義函式時的引數

實參:在呼叫函式時的引數

形參與實參的關係:

在呼叫時實參會繫結形參

繫結關係只能在函式體內使用

實參與形參的繫結關係只有呼叫時生效,而呼叫結束後則解除繫結關係

實參傳值:

# 形式一:

func(1, 2)

# 形式二:

a = 1

b = 2

func(a, b)

# 形式三:

func(int('1'), 2)

形參與實參的使用:

位置引數:

位置形參:在函式定義時,按照從左到右的順序定義

特點:必須被傳值,形參有幾個值,就要傳入幾個值

位置實參:呼叫時按照從左到右的順序依次傳值

特點:按照形參順序對應傳值

def func(x,y):

print(x,y)

func(1,2)

關鍵字引數:

關鍵字形參:在函式呼叫時按照 keys 與 value 的形式傳值

特點:根據「變數名」傳值且可以不按照順序傳值

def func(x,y):

print(x,y)

func(y=2,x=1)

位置引數與關鍵字引數的混合使用:

1,位置實參必須放在關鍵字實參前

func(1,y=2)
2,不能同時給同乙個形參傳多個值

func(1,y=2,x=3) #錯誤的演示
預設引數:在定義函式時就已經被賦值的形參

特點:定義時被賦值了呼叫時就可以不用賦值,當然也可以在重新賦值

def func(x,y=3):

print(x,y)

func(x=1,y=44444)#y在形參定義時已經賦值了,但是呼叫函式時也可以在重新賦值

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

print(name,age,gender)

register('三炮',18)

register('二炮',19)

register('大炮',19)

register('沒炮',19,'女')

位置引數與預設引數的混合使用:

1,位置形參必須在預設形參的左邊

def func(y=2,x):

pass

2,預設引數的值是在函式定義賦值的,準確的說是賦予了記憶體位址

m=2

def func(x,y=m): # y=>2的記憶體位址

print(x,y

m=3333333333

func(1)

3,預設值可以指定任意型別,但是不推薦使用可變型別,因為這樣會使整個函式的邏輯關係變的混亂。

函式理想的狀態:函式的呼叫只跟函式本身有關係,不被外界**影響。

def func(x,y,z,l=none):

if l is none:

l=print(l)

func(1,2,3)

func(4,5,6)

new_l=[111,222]

func(1,2,3,new_l)

可變長度的引數(*與**的用法)

可變長度指的是在呼叫函式時,傳入的值(實參)的個數不固定

而實參是用來為形參賦值的,所以對應著,針對溢位的實參必須有對應的形參來接收

可變長度的位置引數

i:*形參名:用來接收溢位的位置實參,溢位的位置實參會被*儲存成元組的格式然後賦值緊跟其後的形參名

*後跟的可以是任意名字,但是約定俗成應該是args

def my_sum(*args):

res=0

for item in args:

res+=item

return res

res=my_sum(1,2,3,4,)

print(res)

ii: *可以用在實參中,實參中帶*,先*後的值打散成位置實參

def func(x,y,z):

print(x,y,z)

# func(*[11,22,33]) # func(11,22,33)

# func(*[11,22]) # func(11,22)

l=[11,22,33]

func(*l)

iii: 形參與實參中都帶*
def func(x,y,*args): # args=(3,4,5,6)

print(x,y,args)

func(1,2,[3,4,5,6])

func(1,2,*[3,4,5,6]) # func(1,2,3,4,5,6)

func(*'hello') # func('h','e','l','l','o')

可變長度的關鍵字引數

i:**形參名:用來接收溢位的關鍵字實參,**會將溢位的關鍵字實參儲存成字典格式,然後賦值給緊跟其後的形參名

**後跟的可以是任意名字,但是約定俗成應該是kwargs

def func(x,y,**kwargs):

print(x,y,kwargs)

func(1,y=2,a=1,b=2,c=3)

ii: **可以用在實參中(**後跟的只能是字典),實參中帶**,先**後的值打散成關鍵字實參
def func(x,y,z):

print(x,y,z)

func(*) # func('x','y','z')

func(**) # func(x=1,y=2,z=3)

iii: 形參與實參中都帶**
def func(x, y, **kwargs):

print(x, y, kwargs)

func(y=222, x=111, a=333, b=444)

func(**)

混用*與**:*args必須在**kwargs之前

python第二天 函式

函式 python內建了很多的函式 要呼叫乙個函式,需要知道函式的名稱和引數,比如求絕對值的函式abs,只有乙個引數 常用函式 abs 求絕對值 abs 1 乙個int 的引數 max 求最大值 多個 int 轉整數 float 轉浮點數 也可以通過變數 a int 把函式體賦給a 函式的定義 使用...

上班第二天

本想坐晚一班車的,誰知道這晚一班的也只是晚了 五 六分鐘,不高興再在站台上等,也只好小跑到車門上去了,果然,八點十分就到了。白天那個困啊 今天的工作內容和昨天一樣,做到後來我實在覺得測的差不多了,想幹些其他的,但這初來乍到的,也不好幹其他的呀,況且領導辦公室就在我旁邊。今天的工作總結有兩點 1 別把...

第二天實習

今天我早早到了銀行,開始給大家抹桌子,算是向愛妃學習吧。之後向wqy學習做表的方法,他很耐心。今天一天也就是做了這麼乙個表,但是還向dh學習了另外一些業務的處理,收穫不小。中午吃了雞腿 肉串和芸豆,好開心啊。我越來越喜歡自己的實習了。今天好多自己班上的同學來面試實習生,希望她們都能上!今天我沒有去同...