python get rect 函数_python笔记之函数
函數(shù)
>>> def funTest(param1):
... 'this is function document string.' #正文需要有縮進(jìn)
... return param1
...
>>> funTest(12)
12
>>> funTest.__doc__ #訪問(wèn)文檔字符串
'this is function document string.'
函數(shù)實(shí)參,相當(dāng)于一個(gè)賦值操作,為形參賦值
>>> def fuc1(dict):
... dict['one'] = 1 #函數(shù)1修改參數(shù)內(nèi)容
...
>>> def fuc2(dict):
... dict = {} #函數(shù)2為參數(shù)重新賦值
...
>>> d = {'one':11, 'two':22}
>>> fuc1(d) #形參dict賦值為d,即dict和d指向同一地址,修改dict的數(shù)據(jù),自然就修改了d的數(shù)據(jù)
>>> d
{'two': 22, 'one': 1}
>>> fuc2(d) #dict和d指向同一地址,但是重新為dict賦值,則dict與d不再指向同一地址,所以d不變。
>>> d
{'two': 22, 'one': 1}
>>> dd = {'hello':'world'}
>>> fuc1(dd.copy()) #傳入dd的一個(gè)副本,即dict與dd不指向同一地址,所以dd也不變
>>> dd
{'hello': 'world'}
關(guān)鍵字參數(shù):調(diào)用時(shí),使用參數(shù)名提供的參數(shù)。
定義時(shí)使用關(guān)鍵字參數(shù),還可以提供默認(rèn)值.
參數(shù)在給定默認(rèn)值的時(shí)候是可選的。
#打印長(zhǎng)方形的名字和寬高
>>> def descRect(name, width, height):
... print 'name:%s, width:%d, height:%d' % (name, width, height)
...
>>> descRect('test', 11, 22)
name:test, width:11, height:22
>>> descRect(width=1, height=2, name='test') #定義為位置參數(shù),使用關(guān)鍵字參數(shù)調(diào)用,與書(shū)寫順序無(wú)關(guān)
name:test, width:1, height:2
>>> def descRectangle(name, width=1, height=1):
... print 'name:%s, width:%d, height:%d' % (name, width, height) #name是位置參數(shù),width和height是關(guān)鍵字參數(shù),且提供了默認(rèn)值
...
>>> descRectangle('small', 2, 3) #參數(shù)齊全
name:small, width:2, height:3
>>> descRectangle('default') #位置參數(shù)必需,關(guān)鍵字參數(shù)有默認(rèn)值
name:default, width:1, height:1
>>> descRectangle('default', 2) #沒(méi)有指明關(guān)鍵字參數(shù)名字的,按照順序
name:default, width:2, height:1
>>> descRectangle('default', height=2) #指明了關(guān)鍵字參數(shù)名字的,替換默認(rèn)值
name:default, width:1, height:2
>>> descRectangle(name='test')
name:test, width:1, height:1
收集參數(shù)
參數(shù)名之前加一個(gè)星號(hào),表示收集其他的位置參數(shù)。
參數(shù)名之前加兩個(gè)星號(hào),表示收集其他的關(guān)鍵字參數(shù)。
>>> def chooseOne(myChoose, *others):
... print 'I choose %s' % myChoose
... print 'others are ', others
...
>>> chooseOne('A', 'B', 'C', 'D', 'E')
I choose A
others are ('B', 'C', 'D', 'E')
>>> chooseOne('A', 'B')
I choose A
others are ('B',)
>>> chooseOne('A')
I choose A
others are ()
>>> def printParams(**param):
... print param
...
>>> printParams(x=1,y=2,z=3)
{'y': 2, 'x': 1, 'z': 3}
>>> printParams(1,y=2,z=3)
Traceback (most recent call last):
File "", line 1, in
TypeError: printParams() takes exactly 0 arguments (3 given)
>>>
>>> def print_params(x,y,z=0):
... print "x=", x, ", y=", y, "z=", z
...
>>> param1=(2,3)
>>> dict={"z":66}
>>> print_params(param1, dict) #兩個(gè)位置參數(shù),沒(méi)有關(guān)鍵字參數(shù)
x= (2, 3) , y= {'z': 66} z= 0
>>> print_params(*param1, **dict) #一個(gè)位置參數(shù)列表,一個(gè)關(guān)鍵字參數(shù)列表
x= 2 , y= 3 z= 66
獲取全局變量字典 globals()
局部作用域內(nèi)聲明一個(gè)全局變量 global x。之后對(duì)x操作,全局變量會(huì)相應(yīng)改變。
python函數(shù)是可以嵌套的,即可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)。
內(nèi)建函數(shù):
reduce會(huì)將序列中的前兩個(gè)元素,與給定的函數(shù)聯(lián)合使用,并且將他們的返回值和第三個(gè)元素繼續(xù)聯(lián)合使用,直到整個(gè)序列都處理完畢,并且得到一個(gè)最終結(jié)果。
map(func, seq[, seq,...]) 對(duì)序列中的每個(gè)元素應(yīng)用函數(shù)
filter(func, seq) 返回其函數(shù)為真的元素的列表
reduce(func, seq[, initial]) 等同于func(func(func(func(func(seq[0], seq[1])), seq[2]), seq[3]), ...)
sum(seq) 返回seq中所有元素的和
apply(func[, args[, kwargs]]) 調(diào)用函數(shù),可以提供參數(shù)
#reduce
>>> reduce(lambda x,y : x+y, range(11))
55
#map
>>> def addOne(x):
... return x+1
...
>>> map(addOne, range(5))
[1, 2, 3, 4, 5]
#filter
>>> def getNum(x):
... if(x>2):
... return 1
... return 0
...
>>> filter(getNum, range(5))
[3, 4]
總結(jié)
以上是生活随笔為你收集整理的python get rect 函数_python笔记之函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1011 A+B 和 C (15分)
- 下一篇: 手机输入法带拼音声调_这些神奇的拼音输入