什麼是函式?
函式是對程式邏輯進行結構化或過程化的一種程式設計方法。
能將整塊**巧妙的隔離成易於管理的小塊。
把 重複**放到函式中而不是進行大量的拷貝-------這樣既能節省空間,也有助於保持一致性,因為你只需改變單個的拷貝而無需去尋找再修改大量複製**的拷貝。
函式可以以不同的形式出現。下面簡單展示了一些建立,使用,或者引用函式的方法。
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 ...