Python 裡的函式

2021-08-04 08:34:46 字數 1955 閱讀 2830

什麼是函式?

函式是對程式邏輯進行結構化或過程化的一種程式設計方法。

能將整塊**巧妙的隔離成易於管理的小塊。

把 重複**放到函式中而不是進行大量的拷貝-------這樣既能節省空間,也有助於保持一致性,因為你只需改變單個的拷貝而無需去尋找再修改大量複製**的拷貝。

函式可以以不同的形式出現。下面簡單展示了一些建立,使用,或者引用函式的方法。

declaration/defunition def foo(): print(bar)

function object/reference foo

function call/invocation foo()

函式vs 過程

兩者都可以被呼叫。

函式在經過一系列呼叫,經過一定的處理,最後像呼叫者傳回返回值。

過程是簡單,特殊,沒有返回值的函式。

返回值與函式型別:

下面的hello函式的行為就像是乙個過程,沒有返回值。如果儲存了返回值,該值為none。

>>> def hello():

print('hello word')

>>> res=hello()

hello word

>>> res

>>> print(res)

none

>>> type(res)

>>> hello()

hello word

>>> type(hello())

hello word

>>> print(hello())

hello word

none。

與其他大多數語言一樣,python裡的函式可以返回乙個值或者物件。

>>> def foo():

return ['xyx',100000,-98]

>>> def bar():

return 'abc',[42,'odd'],"gui"

>>> foo()

['xyx', 100000, -98]

>>> bar()

('abc', [42, 'odd'], 'gui')

foo()函式返回乙個列表,bar()函式返回乙個元組。

由於元組語法上不需要一定帶上圓括號,所以讓人真的以為可以返回多個物件。

如果我們要恰當的給這個元組加上括號,bar()的定義看起來會是這樣。

>>> def bar():

return('abc',[42,'odd'],"gui")

>>> bar()

('abc', [42, 'odd'], 'gui')

從返回值的角度來考慮,可以通過很多方式來儲存元組。

接下來的三種方式是等價的

>>> def bar():

return('abc',[42,'odd'],"gui")

>>> bar()

('abc', [42, 'odd'], 'gui')

>>> atuple=bar()

>>> x,y,x=bar()

>>> (a,b,c)=bar()

>>> atuple

('abc', [42, 'odd'], 'gui')

>>> x,y,x

('gui', [42, 'odd'], 'gui')

>>> (a,b,c)

('abc', [42, 'odd'], 'gui')

>>> x

'gui'

>>> y

[42, 'odd']

>>> a

'abc'

>>> b

[42, 'odd']

>>> c

'gui'

>>>

在對x,y,z和a,b,c的賦值中,根據值返回的順序,每個變數會接受與之對應的返回值。

而atuple直接獲得函式隱式返回的整個元組。

元組既可以被分解為單獨的變數,也可以直接用單一變數對其進行引用。

Python裡的open函式

1.open函式 file open filename,open 函式是python內建的用於對檔案的讀寫操作,返回的是檔案的流物件 而不是檔案本身,所以使用的方法都是流物件的方法 使用這個函式時可以指定encoding引數 python2.7中不支援 因為python 在不同的平台環境中使用的預設...

Python裡的高階函式

1.map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。def f x return x x print map f,1,2,3,4,5,6,7,8,9 輸出結果 1,4,9,10,25...

python中print()函式裡的

一些入門書籍沒有介紹print 函式這一格式化輸出方法,有的同學看到這裡會有疑惑。說明 字元 標記轉換說明符 str the length of s is d runoob len runoob print str the length of runoob is 6或者 x hex 十六進製制 d ...