Python學習筆記11 函式

2021-09-08 19:19:29 字數 2290 閱讀 6453

定義函式的時候,我們把引數的名字和位置確定下來,函式的介面定義就完成了。對於函式的呼叫者來說,只需要知道如何傳遞正確的引數,以及函式將返回什麼樣的值就夠了,函式內部的複雜邏輯被封裝起來,呼叫者無需了解。

python的函式定義非常簡單,但靈活度卻非常大。除了正常定義的必選引數外,還可以使用預設引數、可變引數和關鍵字引數,使得函式定義出來的介面,不但能處理複雜的引數,還可以簡化呼叫者的**。

建立第乙個函式

/usr/bin/env python

#coding:utf-8

defadd_function(a,b):

c = a+b

printcif

__name__=="

__main__":

add_function(2,3)

在定義函式的時候,引數可以像前面那樣,等待被賦值,也可以定義的時候就賦給乙個預設值。例如

>>> def times(x,y=2): #

y的預設值為 2

... print"x=

",x...

print"y=

",y...

return x*y

...>>> times(3) #

x=3,y=2

x= 3y= 2

全域性變數和區域性變數

x = 2

def funcx():

global x #全域性變數

x = 9

print "this x is in the funcx:-->",x

funcx()

print

"--------------------------

"print

"this x is out of funcx:-->

",x

結果:

this x is

in the funcx:--> 9

--------------------------this x

is out of funcx:--> 9

引數收集

函式的引數的個數,當然有不確定性,函式怎麼解決這個問題呢?

#

/usr/bin/env python

#encoding=utf-8

def func(x,*arg):

print x #

輸出引數 x 的值

result =x

print arg #

輸出通過 *arg 方式得到的值

for i in

arg:

result +=i

return

result

print func(1,2,3,4,5,6,7,8,9) #

賦給函式的引數個數不僅僅是 2個

執行此**後,得到如下結果:

1 #

這是函式體內的第乙個 print,引數x得到的值是 1

(2, 3, 4, 5, 6, 7, 8, 9) #

這是函式內的第二個 print,引數 arg 得到的是乙個元組

45 #

最後的計算結果

*args 這種形式的引數接收多個值之外,還可以用 **kargs 的形式接收數值

>>> def foo(**kargs):

...

print

kargs

...>>> foo(a=1,b=2,c=3) #

注意觀察這次賦值的方式和列印的結果

不知道引數到底會可能用什麼樣的方式傳值呀,這好辦,把上面的都綜合起來。

>>> def foo(x,y,z,*args,**kargs):

...

print

x...

print

y...

print

z...

print

args

...

print

kargs

...>>> foo('

qiwsir

',2,"

python")

qiwsir

2python

(){}

>>> foo(1,2,3,4,5)12

3(4, 5)

{}>>> foo(1,2,3,4,5,name="

qiwsir

")

python學習筆記11(函式)

概述 在乙個完整的專案中,某些功能會反覆的使用。那麼會將功能封裝成函式,當我們要使用功能的時候直接呼叫函式即可 本質 函式就是對功能的封裝 優點 1 簡化 結構,增加了 的復用度 重複使用的程度 2 如果想修改某些功能或者除錯某個bug,只需要修改對應的函式即可 定義函式 格式 def 函式名 引數...

python學習(11) 函式

函式 1 定義函式 1.1 函式的定義 定義函式是使用def關鍵字來定義的 呼叫函式,可指定函式名以及用括號括起的引數資訊 def say hello 定義乙個函式 print hello world say hello 呼叫函式 1.2 向函式傳遞資訊 可以在函式定義的函式名括號中定義引數資訊,引...

python學習11函式

函式 1.定義 指通過專門的 組織,用來實現特定的功能的 段,具有相對獨立性,可供其他 重複呼叫 2.語法 def 函式名 引數 函式體 return 返回值 3.函式名命名規則 1 符合基本的識別符號命名原則 2 不能與現有內建函式名發生衝突 3 名稱應該準確的表達函式的功能 4.不帶引數的函式 ...