形參:在定義函式時的引數
實參:在呼叫函式時的引數
形參與實參的關係:
在呼叫時實參會繫結形參
繫結關係只能在函式體內使用
實參與形參的繫結關係只有呼叫時生效,而呼叫結束後則解除繫結關係
實參傳值:
# 形式一:形參與實參的使用: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):2,預設引數的值是在函式定義賦值的,準確的說是賦予了記憶體位址pass
m=23,預設值可以指定任意型別,但是不推薦使用可變型別,因為這樣會使整個函式的邏輯關係變的混亂。def func(x,y=m): # y=>2的記憶體位址
print(x,y
m=3333333333
func(1)
函式理想的狀態:函式的呼叫只跟函式本身有關係,不被外界**影響。
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學習了另外一些業務的處理,收穫不小。中午吃了雞腿 肉串和芸豆,好開心啊。我越來越喜歡自己的實習了。今天好多自己班上的同學來面試實習生,希望她們都能上!今天我沒有去同...