1. 程式人生 > >Python學習十大良好習慣

Python學習十大良好習慣

本文轉自開源中國http://www.oschina.net/translate/10-time-saving-tips-pythonists,英文來源為http://www.sitepoint.com/10-time-saving-tips-pythonists/

Python 是一個美麗的語言,可以激發使用者對它的愛。所以如果你試圖加入程式設計師行列,或者你有點厭倦C++,Perl,Java 和其他語言,我推薦你嘗試Python.
Python有很多吸引程式設計師的功能 ,它易學,面向物件,位元組碼編譯,免費且開源。還有執行時檢查。完整快速的支援,可以執行各種任務的擴充套件。
高效的Python

在這篇文章,我想強調一些 Python 可以節約時間並最大限度地提高生產力的方面。在做準備時,我諮詢了幾個 Pythonists,他們最節省時間的技巧是什麼?答案在這裡...

1. 不使用分號

使用分號在 Python 中是可選的,對比其他面嚮物件語言,你不需要在每一條語句後面使用分號。
這看起來很簡單,似乎也節省不了多少時間;但一旦你的程式碼量擴充套件到數千號,這些分號就變得分心且沒有必要鍵入。
2. 找一個稱手的程式碼編輯器

選擇一個稱手的程式碼編輯器可以節省大量的時間。面對這麼多程式碼編輯器,很多新手都會感覺很迷茫。
習慣一個編輯器再使用其他編輯器會覺得很混亂,所以選一個稱手的是一個好的起點。不管你選擇哪一個,要實時支援 flake8 和 PEP8。
關於編輯器選擇指南,請參考文章 Which Code Editors Do Pythonists Use?
3. 遵循 Python 程式碼規範

遵循 Python 程式碼規範可以提升程式碼的可讀性,從而節省評審程式碼的時間。(Python 的設計哲學 強調程式碼的可讀性。)
4. 使用 help() 函式

Python 的 help() 是隨手可用的內建函式可以節約很多時間,比如查詢其他函式的解釋。你可以在直譯器終端直接執行該函式。
Python 文件有更多該函式的用法。
5. 使用庫

Python 有大量的庫可以讓你不必每次都重複造輪子。
比如,你可以從 PyPI(Python包索引)選擇大量可用的包,這是一個軟體倉庫。Scikit-image 是一個很好例子,它使影象處理任務如模糊,增強對比度,縮放只需要一些函式呼叫就可以完成。
6. 使用Cookiecutter

Cookiecutter 是一命令列工具,可以幫助你從工程模板建立 Python 工程,這可以節省大量的時間。
7. 嚴格的註釋
養成寫註釋的好習慣,可以節省你和其他人的時間,尤其是作除錯跟蹤。(是的我們聽到很多,但似乎很多程式設計師還是需要提醒)。
註釋在團隊合作是非常關鍵,尤其是一個做了大量變更。
8. 經常測試
嘗試測試你程式中的每一個元件。聽起來好像有點費時,但長時間執行可以節省大量時間,幫助你發現隱藏的 bug,讓你對程式碼更放心,還強制你理解自己的每一片程式碼在真實情況下是如何地執行。
REPL 是一個 read-eval-print loop,一個常用的程式碼測試工具,很多 Pythonists 使用它。
9. 專注和專業
Pythonists 都建議要有一個專注領域和專長。你可以使用 Python 做很多事情,從編寫網頁攝像到處理計算和演算法。 
已經有大量的庫可以幫助完成這些任務,如 SimpleCV,計算機視覺處理;Biopython,是一個生物計算庫; SymPy,是一個數學符號計算庫。
深入類似這些的領域,並掌握一個特定的框架,幫助你在更深的層次學習 Python,掌握一個特定的程式碼風格(在第三部分已經提到),處理特定型別的問題。
10. 每天編碼
當你養成了每天寫 python 程式碼,使用 python 解決問題的習慣,你就會開始用 python 思考,可以這麼說,這將最終會幫助你更快的解決問題。

總結
在這邊簡短的文章中,我已經列舉了主要的幾個我從和 python 開發者的對話收集來的 tips,下面的是我能夠新增進去的其他的 tips.
參與 python 的活動和集會,保證參加你能夠參加到的每場活動和集會。他們有益於分享經驗,最佳實踐,工具和其他有趣的話題。
這可能表面上不是一種省事的策略,但是通過建議,提示,破解來學習其他人的經驗是另一種避免重複造輪子的方法。
每年一次的 PyConf 是一個知曉活動的好地方。
紙上思考

紙上思考 —— 在直接深入程式碼之前這樣做 —— 將給你進行修改的靈活性。直接就去寫程式碼會強迫你從一開始就得去考慮實現的細節, 這在啟動專案時常常不是對你的時間的最佳利用方式。紙上思考這種解放注意力的方式對於頭腦風暴和問題的解決都很有好處!
掌握基礎知識

最後這一條看似很明顯,但一定要投入時間來學習 Python 的基礎知識. 這樣最終會為你節省很多的時間,因為對更加複雜的主題,你會有更好的準備.
一些好書可以對此有所幫助,它們包括:
《學習 Python》
《Python 程式設計入門》: 介紹Python計算機語言和計算機程式設計.
通過閱讀部落格和文章,保持有關資訊的新鮮度也很重要。可以跟進的一個很棒部落格是 The Mouse Vs. The Python.

相關推薦

Python學習良好習慣

本文轉自開源中國http://www.oschina.net/translate/10-time-saving-tips-pythonists,英文來源為http://www.sitepoint.com/10-time-saving-tips-pythonists/。Pyth

學好VC++的良好習慣

一)充分利用MSDN,因為我個人覺得它勝過任何一本程式設計參考書;   MSDN是 Microsoft 當前提供的有關程式設計資訊的最全面的資源,它包含微軟最新的技術資料庫,加上易學易用的全文檢索功能,讓您迅速找到任何您需要的技術參考資料,讓您隨時擁有與全世界菁英同步的技術

Python Scikit-learn 實現機器學習演算法--樸素貝葉斯演算法(文末有程式碼)

  1,前言 很久不發文章,主要是Copy別人的總感覺有些不爽,所以整理些乾貨,希望相互學習吧。不囉嗦,進入主題吧,本文主要時說的為樸素貝葉斯分類演算法。與邏輯迴歸,決策樹一樣,是較為廣泛使用的有監督分類演算法,簡單且易於理解(號稱十大資料探勘演算法中最簡單的演算法)。但

機器學習常用算法

不同 youtube 多少 ear 邏輯回歸 total 組成 ddc 表達 機器學習十大常用算法小結 機器學習十大常用算法小結 通過本篇文章可以對ML的常用算法有個常識性的認識,沒有代碼,沒有復雜的理論推導,就是圖解一下,知道這些算法是什麽,它們是怎麽應用的,例子

Python不能用於大型項目?人們對Python誤解

Python 項目 程序員 編程學習 Python 類型系統的特點是擁有強大、靈活的類型操作. 維基百科上對此作出的闡述. 而存在一個不爭而有趣的事實是, Python 是比Java更加強類型的. Java 對於原生類型和對象區分了類型系統,它讓null存在於一個灰色地帶. 另一方面,現代的

python學習(二)--魔法方法

ini 自己 rgs clas 賦值 getitem 定義 使用 object 魔法方法是指用__ __包起來的方法,可以不直接調用方法或者調用其它函數時會調用到對應的魔法方法。這種拼寫表示名字有特殊含義,不要在自己的程序中使用這種名字。先對魔法方法的幾個

Python學習(五)--生成器

但是 spa 生成器 att 是我 class def nes 遇到 生成器是一種用普通的函數語法定義的叠代器。任何包含yield語句的函數稱為生成器。生成器在每次調用next()的時候執行,遇到yield語句返回,再次執行時就從上次返回的yield語句處

Python學習(四)--叠代器

pan 進行 沒有 做的 叠代 def next 異常 一次 叠代的意思是重復做一件事很多次,就像在循環中做的那樣。如果一個對象實現了__iter__方法,就可以對對象進行叠代。 __iter__方法會返回一個叠代器,所謂的叠代器就是具有n

python學習五天

結束 長度 使用 get print 一個 逗號 使用遞歸 任意數據類型 內置函數二 1.lamda匿名函數 2. sorted() 3. filter() 4. map() 5. 遞歸函數 一. lamda匿名函數 為了解決一些簡單的需求而設計的一句話函數 # 計算n

英語學習-詞類

英語中的詞可以根據詞意、句法作用和形式特徵分為十大詞類: 名詞(mouns) 動詞(Verbs) 形容詞(Adjectives) 副詞(Adverbs) 冠詞(Articles) 代詞(Pronouns) 數詞(Numberals) 介詞

新手入門機器學習演算法

在機器學習的世界中,有一種被稱為“無免費午餐”的定理。 它意在說明沒有哪種演算法能夠完美地解決每個問題,特別是對於監督學習問題。例如,神經網路不會總是比決策樹要好,反之亦然。往往是有許多因素在起作用(如:資料集的大小、結構),共同決定了最後的結果。因此,我們應該針對具體的問題嘗試許多不同的演算法

圖解機器學習常用演算法

通過本篇文章可以對ML的常用演算法有個常識性的認識,沒有程式碼,沒有複雜的理論推導,就是圖解一下,知道這些演算法是什麼,它們是怎麼應用的,例子主要是分類問題。 每個演算法都看了好幾個視訊,挑出講的最清晰明瞭有趣的,便於科普。 以後有時間再對單個演算法做深入地解析。 今天的演算法如下:

機器學習演算法之決策樹(詳細)

什麼是決策樹? 如何構建決策樹? ID3 C4.5 CART 決策樹的優缺點及改進 什麼是決策樹? 決策樹是運用於分類的一種樹結構,其本質是一顆由多個判斷節點組成的樹,其中的每個內部節點代表對某一屬性的一次測試,每條邊代表一個測試結果,而葉節點代表某個類或類的分佈。 屬於有監督學習 核心思想:

機器學習演算法2----logistics迴歸

補充: 風險極小化準則:由樣本的隨機性 故L(y,f(x,a))是r.v  故考慮期望R(a)=∫LdP(x,y) 模式識別:y∈{0,1}, L(y,f(x,a))=P(y!=f(x,a)) 迴歸估計:L(y,f(x,a))=(y-f(x,a))^2 密度估計:

機器學習演算法1----naive-bayesian

收集資料---》準備資料:數值型/布林----》分析資料:繪製特徵(資料大時,不管用)----》訓練演算法:不同獨立特徵的條件概率---》測試演算法:計算錯誤率----》使用:文件分類、語言遮蔽, 特點:資料較少時仍有效,但對資料的準備方式較為敏感  適用於:標稱型資料 樸素貝葉斯分類

機器學習經典演算法:(2)k-means演算法

1.基本Kmeans演算法[1] [cpp]  view plain  copy 選擇K個點作為初始質心   repeat  

機器學習經典演算法:(1)C4.5演算法

C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3演算法. C4.5演算法繼承了ID3演算法的優點,並在以下幾方面對ID3演算法進行了改進: 1)用資訊增益率來選擇屬性,克服了用資訊增益選擇屬性時偏向選擇取值多的屬性的不足;   &nbs

機器學習常用演算法彙總

1.決策樹     以一個根節點開始,每一個節點提出一個問題,基於feature將資料分為兩類,再子節點上再繼續提問。每個節點上的問題和分類規則是根據已有的訓練資料學習出來的。   決策樹通常有三個步驟:特徵選擇、決策樹的生成、決策樹的修剪。 上圖為一個決策

機器學習常用演算法

過本篇文章可以對ML的常用演算法有個常識性的認識,沒有程式碼,沒有複雜的理論推導,就是圖解一下,知道這些演算法是什麼,它們是怎麼應用的,例子主要是分類問題。 每個演算法都看了好幾個視訊,挑出講的最清晰明瞭有趣的,便於科普。 以後有時間再對單個演算法做深入地解析。 今天的演

機器學習經典演算法之K-近鄰演算法(學習筆記)

演算法概述 K-近鄰演算法(k-Nearest Neighbor,KNN)是機器學習演算法中最簡單最容易理解的演算法。該演算法的思路是:給定一個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的K個例項, 這K個例項的多數屬於某個類,就把該輸入例項分