python除了關鍵字(keywords)和內置的類型和函數(builtins),更多的功能是通過libraries(即modules)來提供的。
常用的libraries(modules)如下:
1)python運行時服務
* copy: copy模塊提供了對復合(compound)對象(list,tuple,dict,custom class)進行淺拷貝和深拷貝的功能。
* pickle: pickle模塊被用來序列化python的對象到bytes流,從而適合存儲到文件,網絡傳輸,或數據庫存儲。(pickle的過程也被稱serializing,marshalling或者flattening,pickle同時可以用來將bytes流反序列化為python的對象)。
* sys:sys模塊包含了跟python解析器和環境相關的變量和函數。
* 其他: atexit,gc,inspect,marshal,traceback,types,warnings,weakref。
2)數學
* decimal:python中的float使用雙精度的二進制浮點編碼來表示的,這種編碼導致了小數不能被精確的表示,例如0.1實際上內存中為0.100000000000000001,還有3*0.1 == 0.3 為False. decimal就是為了解決類似的問題的,擁有更高的精確度,能表示更大范圍的數字,更精確地四舍五入。
* math:math模塊定義了標準的數學方法,例如cos(x),sin(x)等。
* random:random模塊提供了各種方法用來產生隨機數。
* 其他:fractions,numbers。
3)數據結構,算法和代碼簡化
* array: array代表數組,類似與list,與list不同的是只能存儲相同類型的對象。
* bisect: bisect是一個有序的list,其中內部使用二分法(bitsection)來實現大部分操作。
* collections:collections模塊包含了一些有用的容器的高性能實現,各種容器的抽象基類,和創建name-tuple對象的函數。例如包含了容器deque,defaultdict,namedtuple等。
* heapq:heapq是一個使用heap實現的帶有優先級的queue。
* itertools:itertools包含了函數用來創建有效的iterators。所有的函數都返回iterators或者函數包含iterators(例如generators 和generators expression)。
* operator: operator提供了訪問python內置的操作和解析器提供的特殊方法,例如 x+y 為 add(x,y),x+=y為iadd(x,y),a % b 為mod(a,b)等等。
* 其他:abc,contextlib,functools。
4) string 和 text 處理
*codecs:codecs模塊被用來處理不同的字符編碼與unicode text io的轉化。
* re:re模塊用來對字符串進行正則表達式的匹配和替換。
* string:string模塊包含大量有用的常量和函數用來處理字符串。也包含了新字符串格式的類。
* struct:struct模塊被用來在python和二進制結構間實現轉化。
* unicodedata:unicodedata模塊提供訪問unicode字符數據庫
5) python數據庫訪問
* 關系型數據庫擁有共同的規范Python Database API Specification V2.0,MySQL,Oracle等都實現了此規范,然后增加自己的擴展。
新聞熱點
疑難解答