Python教程 函式的易錯點總結

2021-10-11 19:03:59 字數 2803 閱讀 5691

可更改(mutable)與不可更改(immutable)物件

在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

對於上述兩種型別,函式的引數傳遞也是不同的:

python中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

預設引數必須放在引數列表的最後面

def

printinfo

( age=

35,name)

:# 預設引數不在最後,會報錯

不定長引數

傳遞不定長引數有兩種方法:

以元組的方式傳入

'''

'''def

printinfo

( arg1,

*vartuple )

:"列印任何傳入的引數"

print

("輸出: "

)print

(arg1)

print

(vartuple)

# 呼叫printinfo 函式

printinfo(70,

60,50)

結果:

輸出:70(

60,50)

使用中,*vartuple這個引數可以不使用,也就是只傳arg1這乙個引數是可以的。

以字典的方式傳入

def

printinfo

( arg1,

**vardict )

:"列印任何傳入的引數"

print

("輸出: "

)print

(arg1)

print

(vardict)

# 呼叫printinfo 函式

printinfo(

1, a=

2,b=

3)

結果:

輸出:

1

*單獨出現

宣告函式時,引數中星號*可以單獨出現,例如:

def

f(a, b,

*, c)

:return a+b+c

如果單獨出現星號,*後的引數必須用關鍵字傳入。

'''

'''>>

> f(1,

2,3)

# 報錯

traceback (most recent call last)

: file ""

, line 1,in

typeerror: f(

) takes 2 positional arguments but 3 were given

>>

> f(1,

2,c=3)

# 正常

6

匿名函式lambda

比如:sum = lambda arg1, arg2: arg1 + arg2,也就是引數: 表示式的形式。

使用方法:sum(1,2)或者是sum(arg1=1, arg2=2)

和函式同理,可以設定預設引數sum = lambda arg1=0, arg2=0: arg1+arg2,同樣的,預設引數的位置需要靠後。

強制位置函式

這是python3.8的特性。函式形參語法 / 用來指明:函式形參必須使用指定位置引數,不能使用關鍵字引數的形式。

def

f(a, b,

/, c, d,

*, e, f)

:print

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

/之前的引數必須使用指定位置引數。形參 a 和 b 必須使用指定位置引數;

c 或 d 可以是位置形參或關鍵字形參;

*之後的引數必須使用關鍵字引數。所以 e 或 f 要求為關鍵字形參。

f(10, 20, 30, d=40, e=50, f=60)這種使用方法是正確的。

函式內可以訪問全域性變數,但不能改變其值

如果需要改變全域性變數的值,可以使用global方法:

'''

'''a =

10def

sum(n)

:global a

a += n

sum(1)

;print

(a)

可見,a的值變成了11。

函式作為引數

這個乙個很有意思的封裝。

def

execute

(f):

f()defhello()

:print

("hello"

)execute(hello)

python函式使用易錯點 Python易錯例題

為了更好檢測效果,請在作答時最好不要複製 去執行 第一題 實踐 請使用zip函式將已給dict的key和value倒置 原dict 要求結果 第二題 高頻易錯 def add a if a 1 return 1 else return a add a 1 def print to add a pri...

Python易錯點總結

三個單引號 或者雙引號 既可以注釋也可以當作字串。python 中的淺拷貝只拷貝父物件不拷貝子物件,深拷貝父物件子物件全部拷貝。import copy a 1,2,3,4,a b b a c copy.copy a d copy.deepcopy a 5 a 4 c python中的命名方式 參考 ...

Python易錯點總結

1.定義只有乙個元素的元組必須要加逗號,否則只是乙個數.tuple 1,print tuple 2.對於列表和元組,下標值為 1都代表是最後乙個元素的下標,2代表倒數第二個元素的下標,依次類推.print list 1 print tuple 1 3.元組和列表的不同之處在於,元組一經初始化後就不能...