廖雪峰寫了一個Python教程,比較基礎,文風也比較口語化,閱讀學習體驗都不錯,推薦給需要者。
本博文記錄閱讀該教程的一些總結和遇到的問題。
1. 在dict和set中使用tuple
事實證明將元組放入set。如果元祖中包含可變元素,報錯。不然則將元祖中所有元素加入set。對于dict也是如此,看下面的例子:
[python]view plaincopy
>>>?n?=?(1,[2,3])#元組中包含可變的列表
>>>?s?=?set(n)#報錯
Traceback?(most?recent?call?last):
File"",?line1,in
TypeError:?unhashable?type:'list'
>>>prints
Traceback?(most?recent?call?last):
File"",?line1,in
NameError:?name's'isnotdefined
>>>?n?=?(1,2,3)#元組中不包含可變元素
>>>?s?=?set(n)
>>>prints
set([1,2,3])
>>>print1ins
True
>>>?d={}
>>>?d['adam']=12
>>>?d['telew']=12
>>>?d
{'telew':12,'adam':12}
>>>?d[('johm','lucy')]=13#當元組中不包含可變元素時,可以作為dict的key
>>>?d
{'telew':12,?('johm','lucy'):13,'adam':12}
>>>?d[('johm','lucy',['aa',''bb'])]=13#當元組中包含可變元素時,不可以作為dict的key
File"",?line1
d[('johm','lucy',['aa',''bb'])]=13
^
SyntaxError:?invalid?syntax
>>>?d
{'telew':12,?('johm','lucy'):13,'adam':12}
>>>
2.函數的參數
主要有如下幾種參數:
① 默認參數,比如power(x,n=2)
注意點:
一是必選參數在前,默認參數在后,否則Python的解釋器會報錯;
二是如何設置默認參數。當函數有多個參數時,把變化大的參數放前面,變化小的參數放后面。變化小的參數就可以作為默認參數。
定義默認參數要牢記一點:默認參數必須指向不變對象!
② 可變參數,比如calc_sum(*numbers),其中numbers是list或tuple
③ 關鍵字參數,比如person(name, age, **kw),其中kw是一個dict。
如果這些參數一起用時,順序必須是必選參數、默認參數、可變參數、關鍵字參數。
3.偏函數
當函數的參數個數太多,需要簡化時,使用functools.partial可以創建一個新的函數,這個新函數可以固定住原函數的部分參數,從而在調用時更簡單。
詳細內容請見:偏函數
4.模塊
一個.py文件就是一個模塊。一個包含多個模塊的目錄成為包。
模塊可以解決命名沖突的問題,如果模塊ab.py與xy.py產生命名沖突問題,則如果把它們二者放到一個包里面,就可以解決命名沖突的問題。
模塊可以有多級目錄組織。
詳細見:模塊
---------------------
代碼示例:使用模塊