做爲「所謂碼農」的首篇,本章內容理應涵蓋基本編程技法。html
Python這個東西、簡潔,做爲載體,是個不錯的選擇呦。python
連接資源:面試
教學要求:正則表達式
面試級別編程
Ref: [Python] 01 - Number and Matrix json
一些常見的不熟悉的地方,詳見連接。安全
不一樣進制:0b123 0o123 0x123,對應的 」char查看函數":ord('a'),chr(115) --> hex(id(iList)) # 只能對數字,不能對變量,例如錯誤的示範:hex('a')服務器
大數:冪(**), e等網絡
# 專業的十進制
import decimal
# 專業的分數
from fractions import Fraction
python自己提供的三個經常使用庫:math, random, statistics併發
隨機數通常用一下原生的方法,更專業的仍是建議使用更爲專業的庫。
固然,numpy 提供了更爲系統的方案,主要是matrix運算。【需專項熟練 ...】
Ref: [Python] 02 - String
是const類型,immutability。
字符串操做:split() 比較經常使用。
輸出到哪裏:輸出重定向
輸出的格式:三種打印法
多行打印法:三個雙引號
調試日誌法:logging.XX
並行日誌流:StreamHandler
正則表達式 - Regex,經常使用於文件篩選。
import re re.match(...).group(1)
done.
Ref: [Python] 03 - Lists, Dictionaries, Tuples, Set
很是相似C++ STL的思想。
(a) for循環:遍歷一個鏈表
>>> [[x ** 2, x ** 3] for x in range(4)]
(b) map映射:遍歷多個鏈表:【比 for循環 速度更快!但其實返回的是 iterator object】
>>> map(lambda x, y : x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]
若是列表特別大,有必要藉助文件流,那麼如何操做? Goto: 文件IO【有必要搞清楚】
(a) next一步步pick up列表元素。
(b) 先yield各個元素; 再經過 next 來 pick up元素。
dict內容的 update:包含 "append" & "update" 的功能
D.update(D2)
間接遍歷:(1)單獨輸出全部的key;(2)單獨輸出全部的value;(3)單獨輸出全部的(key,value);
直接使用 for keys in/not in dict 速度比自帶的 has_key 要快!
對於sparse matrix的表達優點。
Tuples,不變性 immutability。
「集合數學運算」 是個好東西:List 與 set 的相互轉換。
done.
Ref: [Python] 04 - os & sys module
獲取:路徑相關參數
判斷:路徑是否有效
搜索:文件夾層級數
提取:文件路徑列表
篩選:文件有效路徑
Ref: [Python] 05 - Load data from Files
(1) 安全打開 ----> (2) 逐行讀取 ----> (3) 去雜質
(a) 二進制文件讀取 ----> (b) txt到binary的互相轉化
文件保存:pickle,json
問:如何結合yield處理大數據?
CSV <---- Pandas Lib
Image <---- PIL Lib
常見數據集格式:.mat, .npz, .data
train_test_split(...)
[Python] 06 - Modules --> Packages
模塊的路徑:sys.path.append()
模塊的屬性:__dict__
主程序模塊:__main__,做爲主文件啓動時;reload(...) 時就是其餘狀況了呢。
from <範圍> import <功能> as <別名>,三種逐級導入方式。
放在項目哪裏?
如何設置內容?
如何動態調用?
done.
[Python] 07 - Statements --> Functions
常見 reserved words。
基本函數 --> 大函數返回小函數(工廠模式)--> 小函數改變外層大函數的變量。
傳參問題:一個星號,兩個星號。
鍵值參數:默認只初始化一次。
多異常的兩種寫法;
異常基類;
[Python] 08 - Classes --> Objects
[封裝] 實例屬性;私有屬性;私有化原理。
[繼承] 支持多繼承,遵循從左到右的優先級順序。
[多態] 父類做參數;鴨子類型。
類的加法:__add__
打印類:__str__
迭代類:__iter__, __next__
Index 類:__getitem__
done.
[Python] 09 - Multi-processing
線程建立
線程同步(鎖)
GIL:Global Interpreter Lock --> 進程 cpython
三種隊列可構成緩衝區、線程共享區
[Python] 10 - Concurrent: asyncio
網絡爬蟲 crawler。
服務器端響應 requests。
done.
《Python金融大數據分析》
《Python高性能編程》
[Advanced Python] 11 - Implement a Class【OOP抽象過程】
[Advanced Python] 12 - Transfer parameters【與 "C語言" 的交互】
[Advanced Python] 16 - Google style guide for programming【風格規範】
[Advanced Python] 13 - "Decorator": syntactic sugar 【一大特點】
[Advanced Python] 14 - "Generator": calculating prime【內存環保,但什麼問題適合 generator?】
[Advanced Python] 15 - "Metaclass": ORM【高級實現ing】
[Optimized Python] 17 - Bottle-neck in performance【測度瓶頸】
[Pandas] 01 - A guy based on NumPy【矩陣和矢量計算】
End.