一,python簡介 筆記

python歷史
1,1989年聖誕節,Guido von Rossum開始編寫python語言編譯器
2,1991年2月,第一個python編譯器誕生,是c語言實現的,後面又出現了c#和java版本,能夠調用c庫函數
3,1994年python1.0正式誕生
4,2000年10月 python2.0發佈,實現完整版的垃圾回收,unicode支持,開發過程更加透明,社區影響力擴大,生態圈慢慢造成
5,2008年12月 python3.0發佈,並不兼容2.0和以前的版本,可是許多項目還在2.0運行和維護,後來3.0的許多特性被移植到了2.6/2.7版本
python優勢
1,簡單明確,一件事只用一種方法
2,學習門檻低,容易上手
3,代碼開源,社區和生態圈強大,不用重複造輪子
4,解釋性語言,天生的平臺移植性
5,支持主流編程範式(面向對象和麪向函數)
6,擴展性強和可嵌入性,調用c/c++,也能夠反向調用
7,代碼規範度高,適合代碼潔癖的強迫症人羣
python缺點
1,執行效率低,計算密集型任務最好由c/c++編寫
2,代碼沒法加密,可是如今的軟件公司都是賣服務而不是賣軟件,這個問題很淡化了
3,可選框架太多,舊web框架就有100多個,有選擇的地方就有錯誤
python應用領域
雲基礎設施,DevOps,網絡爬蟲,數據分析挖掘,機器學習等場景;Web後端開發,數據api開發,自動化運維,自動化測試,科學計算和可視化,數據分析,量化交易,機器人開發,圖像識別和處理等職位
環境搭建
......
基礎語法
1,計算機硬件組成:運算器,控制器,存儲器,輸入輸出設備。運算器和控制器組成cpu,用來執行各類運算和控制指令以及處理計算機中的數據。程序就是指令的集合,將指令按照必定的方式組織到一塊兒。
2,變量類型
整形(python2.x有int和long兩種類型,python3.x只有一種int類型),支持二進制、八進制、十進制、十六進制轉換
浮點型 支持科學技術法
字符串型 單引號和雙引號中的任意文本好比'hello'和"hello",字符串還有原始字符串表示法、字節字符串表示法、Unicode字符串表示法,並且能夠書寫成多行的形式(用三個單引號或三個雙引號開頭,三個單引號或三個雙引號結尾)
布爾型 True和False,注意大小寫
複述型 形如3+5j,跟數學上的複數表示同樣,惟一不一樣的是虛部的i換成了j
變量命名
字母數字下劃線組成,不能用字符串開頭
大小寫敏感
不能跟關鍵字衝突
PEP8要求(小寫字母,下劃線拼接;受保護的實例屬性用下劃線開頭;私有實例屬性用雙下劃線開頭)
運算符
[] [:] ~ + - * / % // << >> & ^ ` >= <= > < == != is (is_not)in (not in) not or and
分支循環
if elif else 不使用花括號,使用縮進區分代碼塊
for in 循環
while循環
字符串 列表 元組 的操做和相互轉換,字典 集合
面向對象基礎
1,面向對象:把一組數據結構和處理他們的方法組成對象,相同的行爲對象概括爲類,經過類的封裝隱藏內部細節,經過繼承實現類的特化和泛化,經過多態實現基於對象類型的動態分派
2,封裝:隱藏一切能夠隱藏的實現細節,只向外界暴露(提供)簡單的編程接口
3,類之間的關係 is-a(繼承/範化) has-a(關聯) use-a(依賴)
4,繼承、多態:在已有的類的基礎上建立新類,將已有類的屬性和方法直接繼承下來,減小重複代碼(父類 超類 基類 子類 派生類 衍生類)。咱們常常用子類對象去替換父類對象,叫作里氏替換原則。子類能夠替換父類的方法(重寫)。這樣不一樣的子類對象會出現不一樣的行爲(多態)
圖形界面
1,基於tkinter模塊的GUI,python默認的GUI開發模塊是tkinter,基於TK(跨平臺GUI控件),python並不擅長開發GUI應用,還有wxPython、pyQt、pyGTK等
2,GUI一般是事件驅動的,進入主事件循環就要監聽鼠標鍵盤等,並對應代碼邏輯處理不一樣的事件,處理以後繼續監聽。
3,TK爲控件的擺放提供三種佈局(Placer,Packer,Grid)
4,Pygame是開源的遊戲開發python模塊,用於多媒體應用的開發,包含對圖像,聲音,事件,視頻,碰撞等支持,基於SDL(跨平臺多媒體庫c實現)。
文件和異常
1,文件操做符 w r a x b t +
2,異常處理 try exxept ; with上下文環境管理
正則表達式
1,python提供re模塊支持正則表達式
進程和線程
1,進程是系統執行的程序,操做系統以進程爲單位分配存儲空間,每一個進程有本身的地址空間,數據棧和輔助數據,操做系統管理調度進程的執行,分配進程的資源。fork來建立新的進程,進程之間的通訊經過IPC實現,包括管道、信號、套接字、共享內存區等
2,線程cpu的執行單元,一個進程能夠有多個併發的線程。線程在同一個進程下因此事共享上下文的,數據共享比較簡單。
3,python能夠經過multiprocessing來進程多進程管理,multiprocessing的queue類能夠被多個進程共享的隊列,底層信號經過管道和信號量機制實現的
4,python的多線程經過thread模塊,可是太過底層不少功能沒有,因此你們用的比較多的事threading
5,多線程並不能發揮cpu的多核特性,python解釋器有一個全局解釋器鎖,任何線程執行前都必須得到GIL鎖,每執行100字節碼,就會釋放鎖,讓別的線程執行
網絡編程
1,http協議,requests庫是python基於http協議的第三方庫,安全,方便
2,套接字,c語言實現的庫文件,用於進程之間通訊和網絡編程,實際開發中套接字分爲三類:流套接字,數據報套接字,原始套接字
3,SMTP協議,是簡歷在TCP協議之上的可靠數據傳輸的應用級協議,python經過smptlib模塊實現
圖像和辦公文檔處理
1,python的OpenPyXL模塊,LibreOffice Calc和OpenOffice Calc可以處理excel表格
相關文章
相關標籤/搜索