07函式的定義

2021-08-15 13:51:50 字數 2869 閱讀 5626

函式

形式引數parameter  定義引數是括號內字

實際引數argument   輸入值

def myfx(name):

'函式形式引數為name'

#當前為注釋內容

print((name+'內容')*10)

1.執行函式

>>> myfx('測試')

測試內容

測試內容

測試內容

測試內容

測試內容

測試內容

測試內容

測試內容

測試內容

2.函式文件

>>> help(myfx)

help on function myfx in module __main__:

myfx(name)    函式形式引數為name

3.關鍵字引數  防止引數位置搞錯

>>> def saysome(name,words):

print(name + '->' + words)

>>> saysome(words='寶寶心裡苦',name='小明')

小明->寶寶心裡苦

4.預設引數

在函式定義的過程中,為形式引數賦值

#需要注意的是,多次呼叫函式並且不為預設值引數傳遞值時,預設值引數只在第一次呼叫時進行解釋。對列表、字典這樣複雜型別的預設值引數,這一點可能會導致很嚴重的邏輯錯誤。

5.收集引數(可變長度引數)

可變長度引數在定義函式時主要有兩種形式:*parameter和**parameter,前者用來接收任意多個實參並將其放在乙個元組中,後者接收類似於關鍵引數一樣顯式賦值形式的多個實參並將其放入字典中

>>> def test(*part,extra=3):

print('引數長度是:',len(part))

print('第二個引數是:',part[1])

print('eztra=',extra)

>>> test(10,'大羊駝',7,8,99)

引數長度是: 5

第二個引數是: 大羊駝

eztra= 3

>>> test(10,'大羊駝',7,8,99,extra=98)

引數長度是: 5

第二個引數是: 大羊駝

eztra= 98

>>> def demo(**p):

for item in p.items():

print item

>>> demo(x=1,y=2,z=3)

('y', 2)

('x', 1)

('z', 3)

#幾種不同型別的引數可以混合使用,但是不建議這樣做

>>> def func_4(a,b,c=4,*aa,**bb):

print (a,b,c)

print aa

print bb

>>> func_4(1,2,3,4,5,6,7,8,9,xx='1',yy='2',zz=3)

(1, 2, 3)

(4, 5, 6, 7, 8, 9)

>>> func_4(1,2,3,4,5,6,7,xx='1',yy='2',zz=3)

(1, 2, 3)

(4, 5, 6, 7)

6.引數傳遞的序列解包

傳遞引數時,可以通過在實參序列前加星號將其解包,然後傳遞給多個單變數形參。

>>> def demo(a,b,c):

print a+b+c

>>> seq=[1,2,3]

>>> demo(*seq)

6

7.變數作用域

#不要在函式內部修改全域性變數(python會在函式內部建立乙個與全域性變數名字相同的區域性變數來保護全域性變數)

#如果區域性變數與全域性變數有相同的名字,那麼該區域性變數會在自己的作用域內隱藏同名的全域性變數。

#在函式內定義的變數只在該函式內起作用,稱為區域性變數。

函式結束時,其區域性變數被自動刪除。

在函式內部一般不要試圖修改全域性變數,若要訪問,可使用global關鍵字

>>> count = 5

>>> def myfun():

global count

count = 10

print(count)

>>> myfun()

10>>> print(count)

10

如果想要在函式內部給乙個定義在函式外的變數賦值,那麼這個變數就不能是區域性的,其作用域必須為全域性的,能夠同時作用於函式內外,稱為全域性變數,可以通過global來定義。

(1)乙個變數已在函式外定義,如果在函式內需要為這個變數賦值,並要將這個賦值結果反映到函式外,可以在函式內用global宣告這個變數,將其定義為全域性變數。

(2)在函式內部直接將乙個變數宣告為全域性變數,在函式外沒有宣告,在呼叫這個函式之後,將增加為新的全域性變數。

>>> def demo():

global x

x = 3

y =4

print x,y

>>> x = 5

>>> demo()

3 4

>>> x

3>>> y

出錯nameerror: name 'y' is not defined

>>> del x

>>> x

出錯nameerror: name 'x' is not defined

>>> demo()

3 4

>>> x

3>>> y

出錯nameerror: name 'y' is not defined

Python 07 函式的定義與呼叫

函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的功能是求兩個...

07 函式使用

列表生成式 lt i for i in range 10 生成器方式1 將列表生成式的改為 lt i for i in range 3 可以轉換為列表 print list lt 可以進行遍歷 for i in lt print i,end 可以乙個乙個提取,當遍歷完畢後再使用next會報stopi...

Python基礎07 函式

函式最重要的目的是方便我們重複使用相同的一段程式。將一些操作隸屬於乙個函式,以後你想實現相同的操作的時候,只用呼叫函式名就可以,而不需要重複敲所有的語句。函式的定義 首先,我們要定義乙個函式,以說明這個函式的功能。def square sum a,b c a 2 b 2 return c 這個函式的...