python standard lib_跟Python Standard Library混个脸熟(一)
跟Python Standard Library混個臉熟(一)
[TOC]
Python 本身提供了很豐富的功能,怎么學習這些東西一直是我思考的,通讀整個 Python3 Standard Library 會很有幫助,可以搞不清所有細節,但是得知道提供了什么,這些能解決什么問題。平時不會用到所有,就能解決問題。有個理論叫錘子理論,要避免自己看到的所有都是釘子,那就試圖去了解更多的工具,眼界開闊也是寫好代碼的一個因素。當你要深度使用某個具體模塊的時候可以去研究其源碼。
Python3.6提供了58個內建函數,一些常用的 all() , any() , dir() , range() , list() , type() ....值得注意的是,和Python2的區別是 reduce 不在其中,被放到了, functiontools 里面。這些方法都可以過一遍了解大致的用法,寫出高效簡潔的代碼的前提。隨便羅列兩個 ascii(object) Python2 沒有這個函數,它返回一個字符傳,忽略其中的Non-ASCII Characters,忽略的方法是用\x, \u or \U 等, 這也是其和 repr() 的區別,看下面這個例子
my = {"name": "鄭午"}
print(ascii(my)) # {'name': '\u90d1\u5348'}
print(repr(my)) # {'name': '鄭午'}
divmod(a, b) a,b是兩個實數,返回商和余數
a = 10.0
b = 1.3
print(divmod(a, b)) # (7.0, 0.8999999999999997)
內建常數是指 None , True , False , __debug__ , Ellipsis , NotImplemented 這樣的,前四個是不能被重新賦值的。
主要的內建類型:numerics, sequences, mappings, classes, instances and exceptions. 這個主題下面會涉及到很多基本的東西:
1.真值測試,在Python 中很多都可以被被認為為False 如空字符串,None, 空list,... 2.布爾運算,主要有或(or), 且(and),非(not) 3.比較運算符號,除了常用的還有比較特殊的,is, is not 判斷是否為同一個對象。 4.數值型( Numeric Types )和相關操作。值得記住的是Python 是支持復數運算的。 5.迭代器類型(Iterator Types), 如何讓自己新建類型可迭代?以及Python迭代器本身就能說好長。 6.序列類型和相關操作,這主要是list, tuple, range。需要注意的是可變和不可變類型在代碼里帶來的區別。 7.字符串和相關操作,有多方法可以好好研究,會在字符串操作中帶來便利 8.二進制列表類型,用得相對較少,bytes, bytearray, memoryview 9.集合類型和相關操作 10,dict 11.上下文管理器(Context Manager Types),這是個很重要的概念,后面專文解釋 12.其他
所有異常都是BaseException 的子類, 異常層次結構圖 可以有一個全局感受
1.string對象及其方法 2.正則 3.序列比較,difflib 4.字符串包裝和填充,Text wrapping and filling 5.Unicode Database 6.readline
二進制數據相關操作
1.struct 可以實現Python bytes和c的structs 直接的數據轉換,處理二進制文件,和二進制網絡數據。 2.codecs
1.datetime 2.calendar 3.collections 這個里面有很多方便的東西,Counter方便的對Sequences中的元素做統計,ChainMap合并多個dict當做一個對象處理。OrderedDict有序的dict. UserDict, UserList 4.collections.abc 集合抽象類,可以結合 isinstance() 方法使用,可以用來檢查某個對象是否可序列化之類, 5.優先隊列(heepq) 6.biset 這是我第一次發現的東西 7.array Efficient arrays of numeric values 8.weakref 這里有個概念 weak references , wiki 解釋說弱引用是相對于強引用的區別是不能保證對象不被垃圾回收.... 待仔細考慮考慮 9.types 10.copy 11.有兩個方法copy,deepcopy 12.pprint 13.enum 枚舉類型,誰說Python 沒有枚舉,不過我很少見人用到,通常都是list,dict 之類的代替了,不知道為啥
1.math, 這個很常用 2.cmath 3.decimail 4.fractions 有理數 5.random 隨機函數 6.statistics 可計算常用統計量
1.itertools 創建高效的迭代器 2.functools 和值得研究的模塊,可以讓代碼簡潔高效 3.operator 提供和運算符號相對應的相關函數,如 add , 和 +
總結
以上是生活随笔為你收集整理的python standard lib_跟Python Standard Library混个脸熟(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 时间序列分解 stl_ju
- 下一篇: 一秒等于多少毫秒_使用kibana对电影