python是一門動態解釋性的強類型語言
python的優勢:
1. python的定位是"優雅"、"明確"、"簡單"python
python程序看上去老是簡單易懂,初學者學python,不但入門容易,二缺未來深刻下去,能夠邊啊些那些很是複雜的程序。c++
2. 開發效率高算法
python有強大的第三方庫,基本上你想經過計算機實現任何功能,python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。多線程
3. 高級語言工具
當你用python語言編寫程序的時候,你無需開了諸如如何管理程序使用的內存一類細節。測試
4. 可移植性搜索引擎
因爲python的開源本質,python以及高被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部的python程序無需修改就能夠在市場上全部的系統平臺上運行。加密
5. 可擴展性spa
若是你須要你的一段關鍵代碼運行的得更快,或者但願某些算法不公開,你能夠把你的部分程序用c或c++編寫,而後在你的python程序中使用它們。操作系統
6. 可嵌入性
你能夠把python嵌入你的c\c++程序,從而向你的程序用戶提供腳本功能。
python的缺點:
1. 速度慢
python的運行速度相比於c語言確實慢了不少,跟Java比也要慢寫,所以這也是不少人不屑於使用python的緣由,但其實這裏所指的運行速度在大多數狀況下用戶是沒法直接感覺到的,必須藉助測試工具才能體現出來,好比你用c運行一個程序花了0.01秒,用python是0.1秒,這樣c語言比python快了10倍,算是很誇張了,可是你是沒法用肉眼直接感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右。其實在大多數狀況下,python已經徹底知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎(這種狀況下仍是應該用c去實現)。
2. 代碼不能加密
由於python是解釋型語言,它的源代碼都是以明文的形式存放的。若是你的項目要求源代碼必須是加密的,一開始就不該該用python實現
3.線程不能利用多CPU問題
這是python被人詬病最多的一個缺點,GIL即全局解釋器(GlobalInterpreterLock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行。python的線程是操做系統的原生線程,在Linux上爲pthread,在Windows上爲Winthread,徹底由操做系統調度線程執行。一個python解釋器進程內有一條主線程,以及多條用戶程序執行的線程,即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行(有折中方法)。
固然,python還有一些其餘的小缺點,這這就不一一列舉了。任何一門語言都不是完美的,都有擅長和不擅長作的事情,建議不要用一個語言的劣勢和另外一個語言的優點去比較
語言只是一種工具,是實現程序設計師思想的工具,就像咱們以前中學學集合時,優勢時候須要圓規,有的時候須要用三角尺同樣,拿相應的工具去作它最擅長的工做纔是最正確的選擇。