本書的學(xué)習(xí)將近尾聲情妖,但對(duì)于Python學(xué)習(xí)颠悬,這不是結(jié)束,而是開始虎忌。
More
到目前已經(jīng)學(xué)習(xí)了將來要用的Python的大部分方面泡徙,這章學(xué)習(xí)讓我們知識(shí)更廣泛的內(nèi)容橱鹏。
Passing tuples around(傳輸元組環(huán)繞膜蠢?不知道怎么譯恰當(dāng))
利用元組可以從一個(gè)函數(shù)中返回兩個(gè)不同類型的值
>>>def get_error()
...retun(2,'detail')
...
>>>errnum,errstr=get_error()
>>>errnum
2
>>>errstr
'detail'
同樣堪藐,我們也可以用最快的方法交換兩個(gè)值
>>>a=5;b=8
>>>a,b
(5,8)
>>>a,b=b,a
>>>a,b
(8,5)
這比C#中用第三值來替換要方便的多,而且不同數(shù)據(jù)類型的也可以直接換挑围。
Special Methods(特殊方法)
在類中有一些例如__init__
礁竞、__del__
等有特殊意義的方法。
可以用來模擬某些嵌入類型的行為杉辙。比如想用x[key]索引操作模捂,那么用__getitem__()
方法即可實(shí)現(xiàn)。特殊的還有__str__
蜘矢、__lt__
狂男、__len__
等。
Single Statement Blocks(單語句塊)
每個(gè)塊語言我們都以縮進(jìn)開頭品腹,但如果只是單語句的話岖食,可以放在同一行,一個(gè)條件語句或循環(huán)語句舞吭,如下:
>>>flag=True
>>>if flag:print('Yes')
...
Yes
雖然這可以讓編程變小泡垃,但除非是用于錯(cuò)誤檢查,強(qiáng)烈建議避免這樣寫羡鸥,因?yàn)橛每s進(jìn)更容易加其他語句蔑穴。
Lamnda Forms(匿名形式)
lambda用來創(chuàng)建新函數(shù)對(duì)象
points=[{'x':2,'y':3},{'x':4,'y':1}]
points.sort(key=lambda i:i['y']
print(points)
List Comprehension(列表含義)
用于從現(xiàn)存列表引申出新的列表。
listone=[2,3,4]
listtwo=[2*i for i in listone if i>2]
print(listtwo)
Output:
[6,8]
原列表中大于2的項(xiàng)目都乘以2在新列表中惧浴。
Receiving Tuples and Dictionaries in Functions(在函數(shù)中接收元組和字典)
利用或*前綴存和,將參數(shù)作為元組或字典接收給一個(gè)函數(shù)。這在函數(shù)中有可變數(shù)量的語句時(shí)有用衷旅。
>>>defpowersum(power,*args):
...'''Returnthesumofeachargumentraisedtospecifiedpower.'''
...total=0
...for i in args:
...total+=pow(i,power)
...return total
...
>>>powersum(2,3,4)
25
>>>powersum(2,10)
100
The Assert Statement(維護(hù)語句)
assert語句用來聲明某個(gè)條件是真的哑姚。例如,如果你非常確信某個(gè)你使用的列表
中至少有一個(gè)元素芜茵,而你想要檢驗(yàn)這一點(diǎn)叙量,并且在它非真的時(shí)候引發(fā)一個(gè)錯(cuò)誤,那么
assert語句是應(yīng)用在這種情形下的理想語句九串。當(dāng)assert語句失敗的時(shí)候绞佩,會(huì)引發(fā)一個(gè)
AssertionError。
Decorators(裝潢工)
Decorators提供打包函數(shù)猪钮,可以一遍遍的用同樣的代碼“打包”函數(shù)品山。
Python 2和3之間的區(qū)別(略)
這一節(jié)學(xué)習(xí)了解了更多Python的特征,但肯定不是全部烤低≈饨唬可以開始創(chuàng)建我們想做的編程了。