做爲如今最熱的語言,Python自有其強大之處。Python的哪些特性更容易讓小白快速如門、讓有經驗者提高算法能力?今天咱們就來分享一位大神的回答。程序員
既然Python那麼簡單易如門,學Python會下降編程能力嗎?算法
做爲一個作科學計算的碼農,這裏必須答!不會!編程
首先咱們來定義一下什麼叫編程能力。私覺得應該同時包含兩個部分:寫代碼的能力,以及算法、數據結構設計能力。
推薦下小編的Python學習羣;629440234,無論你是小白仍是大牛,小編我都歡迎,不按期分享乾貨,包括小編本身整理的一份2019最新的Python和0基礎入門教程,歡迎初學和進階中的小夥伴。數組
天天晚上20:00都會開直播給你們分享Python知識和路線方法,羣裏會不按期更新最新的教程和學習方法(進羣送2018Python學習教程),你們都是學習Python的,或是轉行,或是大學生,還有工做中想提高本身能力的Python黨,若是你是正在學習Python的小夥伴能夠加入學習。最後祝全部程序員都可以走上人生巔峯,讓代碼將夢想照進現實,很是適合新手學習,有不懂的問題能夠隨時問我,工做不忙的時候但願能夠給你們解惑數據結構
從小學四年級開始學QBasic,到中學學Pascal和C,本科時一發不可收拾,幹挺C++、Java的同時搞定Obj-C,讀研前又很快的掌握了Python,最近又學了Swift,用過這麼多語言的惟一感想只不過是一個高級語言除了區分是對象化的仍是過程化,其他什麼的區別不大,它就是個語言而已。用QB一樣能夠寫個平衡樹,C沒有STL的話要用到的功能本身寫一遍就好,也不會太複雜。工具
Python是個解釋語言,同時仍是個語法自由度至關大的語言,這就意味着寫程序時絕大多數錯誤是隻有當你的程序跑到出錯語句的時候纔會提示出來的,這一點與其餘編譯語言差異很是大,以致於當你用Python寫個不過小的玩意時,必須有很是清晰的概念、對語言和對程序流程的掌握。學習
Python裏任意變量都是對象指針的設計,使得編程的人必須瞭解解釋器運行機制。從這一點看,Python對於創建編程概念,瞭解程序運行機制是有很大幫助的。比起無腦Debug-Watch,縝密的思惟以及看着代碼就能準確分析運行狀況的能力,更有助於寫出優秀的代碼,也是對代碼能力的鍛鍊。設計
至於算法能力的鍛鍊,與語言自己毫無關聯,Python相比C++一輩最大的好處就是在編程之時不須要爲諸如變量申請之類的問題操心,能夠更加流暢地實現心中所想。我喜歡用Python作算法和思想的驗證,就是由於省事,學習、理解算法,甚至設計新的算法,重要的仍是個量的問題。思考夠了,就要迅速實現,而後嘗試更多方案。所以,Python這樣一個編程省時的語言是提升算法能力的好工具。指針
整體來講,不管寫代碼能力仍是算法設計能力,都是靠多寫和多想來鍛鍊的。Python會不會下降編程能力,也就看會不會減小你寫和想的機會。對象
老一派的程序員可能會以爲Python這種玩意有大量模塊,不少代碼不用本身寫,減小了寫複雜內容的機會。事實上是一個程序好很差並非由手寫快排或者捏個平衡樹之類的玩意肯定的。面對有STL的C++,你還會蛋疼到爲了排個數組而寫快排麼?中學時我能把Splay tree背得倒背如流,10分鐘能用Pascal敲400來行寫一個Splay tree,可是那又如何?單調重複的代碼背下來寫一萬遍並不會提升編程能力,甚至算不上多寫。
相反,如今別人都造好了輪子等你來用,一方面能更快實現目的,一樣的時間裏你能寫更多的不一樣的程序,另外一方面能針對本身的需求對輪子進行改造,有信心的話把個輪子改形成直升機螺旋槳都不成問題。Python給予了更大的創造的空間,與多寫多想並不矛盾。
非要說Python的問題,那就是執行效率了。不過好歹效率還沒差出兩三個數量級,作作原型啊思想驗證啊什麼的,效率也不是最重要的問題。原型驗證了,有繼續開發的價值,影響效率的部分用別的語言寫一遍編譯一下就行了嘛!Python就像畫速寫和素描,或許比不上油畫,後續最終不能掛上畫框開展覽,但必定是鍛鍊基礎的有力工具。
要明白一點,編程並非搬磚的活計,不把本身當藝術家,好歹也要當本身是個工匠,而不是個苦力小工。