2010-02-28 45 views
27

我正在對Python進行一些介紹,但重點關注Python和Python之間的生態系統,而不僅僅是語言。有了如何像計算機科學家和其他偉大的教程一樣思考,很容易熟悉這門語言,但是在我知道什麼是The Cheese Shop或PyPi的故事之前,我花了相當長的一段時間, virtualenv的工作,爲什麼你應該使用它們,你應該去哪裏尋求幫助,你應該關注的有趣的博客,你的代碼應該看起來如何(PEP 8,編寫pythonic代碼)等等。 '軟的東西'。Python新手應該瞭解其社區和生態系統?

當你剛開始使用Python時,最讓你困惑的是什麼?是否有某些你想知道的事情,或者你希望你會比以前更早發現的資源?要了解的人?

我在StackOverflow上發現了一些類似的問題(例如here),但沒有真正接近我想要從你們那裏聽到的東西。希望這個問題並不感到太主觀你的口味:-)

(而且,如果你想幫忙,隨時發送郵件。)

+6

非常有趣的問題,但如果你不想被騷擾,使它成爲社區維基。 – 2010-02-28 17:11:56

+0

感謝您的建議,提出了一個社區維基的問題。 – 2010-02-28 19:21:24

+0

@ e-satis:自我實現的預言? :) – 2010-03-02 16:25:20

回答

9

「當你剛開始使用Python時,最讓你感到困惑的是什麼?」

學習Python的規則2:任何你認爲你想要的通用模塊或框架已經寫好了。幾次。

難的是實現你的想法是

  1. 不是唯一的。

  2. 在開始思考它之前,它已經得到改善。

  3. 已發佈某處。

因此,代碼少,搜索更多。廣泛而靈活地搜索,直到找到與您想要做的事情類似的事情。

  • 認識到你可能有一個你認爲是描述性的名字。但其他人可能會說這是不同的。加入社區,採用他們的命名。你可能不喜歡「ORM」這個詞,但這就是它的名字。

  • 認識到你的想法,不管聽起來有多聽起來,可能真的很差。當你發現一個似乎具有「不必要的額外功能」的框架時,你可能會錯過你的想法。

  • 認識到你的想法,無論看起來多麼「直觀」,可能真的很差。當你發現一個看似「反直覺」的框架時,問題可能就是你的問題。先學習他們,然後在掌握他們之後進行比較和對比。直到你掌握了他們的技能,繼續尋找和學習。

+3

那麼,這不是Python的建議。在一般的編程中是這樣。 – 2010-02-28 17:43:00

+1

...研究也。工程師越早意識到並接受已經存在的東西,他/她就能夠更快地達到並提高藝術水平。儘管不是Python特定的,但仍然是很好的答案。 – 2010-02-28 18:02:18

+1

很好的建議!人們需要認識到,提出正確的問題來找到你需要的東西,是需要時間來發展的技能。 – 2010-02-28 19:13:20

4

解釋PEP是什麼,怎麼樣它是寫的,誰寫的,我們可以找到它們。 PEP給出了很多關於該語言特定功能的背景信息。它們也是展示python發展速度的工具。

(我希望我讀了一些執行點較早,但我完全不知道他們的,雖然他們在手冊中頻繁連接)

+0

如果你向同事解釋他們,你是否正在進行PEP談話? – 2010-03-02 16:27:23

+0

絕對是的。 – 2010-03-02 21:53:42

19

我覺得初學者需要了解的最重要的事情之一Python生態系統是它是一個通用語言,被專門的庫包圍着。有經驗的pythonistas認識他們,但新手不能:

  • 不要停下來Tkinter的:去wxgtkqt
  • 請勿使用手動開啓網頁代碼:請使用TurboGears,Pylons,Web.pyDjango
  • 不要使用硬工具解析HTML/XML:使用lxmlbeautifulsoup
  • 不要讓系統調用imagemagik:使用PIL
  • 請勿手動進行高級數學運算:使用NumPySciPy
  • 請勿手動訪問簡單的數據庫:使用ORM,如SQLAlchemy
  • 不要重新發明系統管理員輪子:使用Fabric

的主要的應該在一本書導向管上市當中進行選擇。

+0

我會添加CherryPy和Genshi到網頁編碼 – 2010-02-28 18:53:17

+0

非常贊同這裏。試圖在所有類型的庫和框架之間進行選擇可能會非常眩暈,因此,對於那些新手來說,對於那些新手而言(包括標準庫和外部庫)的鳥瞰圖將非常有幫助。感謝您的想法! – 2010-02-28 19:11:16

+0

我認爲「不要停止tkinter」的建議是短視的。對於某些類型的問題,Tkinter是一個了不起的解決方案。 – 2010-02-28 21:00:44

5

「剛開始使用Python時,最讓你感到困惑的是什麼?」

學習Python的規則1:使用Source,Luke。

有問題要求從中學習Python的「好」源。最好的答案等於「讀取隨Python提供的庫」。

可以說Python附帶的庫很古怪。在地方。這使他們更好地學習。

  1. 有一個非克隆人的志同道合的社區。

  2. 開源軟件是您可以使用的最高質量的軟件,但它不是由付費開發人員嚴格執行標準創建的。

7

相關的生態系統和間接社會的幾點:

  • 我希望我已提醒更多關於Batteries included。我認爲人們應該被告知要打印Table of Contents of the Standard Library並將它放在枕頭下,以便進行頻繁的評論(從網絡介紹/初學者的視頻介紹中,我終於用了幾年的建議!)。 Std Lib的[相對]穩定性,廣泛而相關的內容說明了對社區領導人及其受人喜愛的BDFL的深思熟慮的治理。

  • 我認爲新手也可以對PiPy的極端品種進行「警告」(該詞可能太強太不公平)。這反映了用戶和貢獻者的活躍,聰明和多樣性(在背景,應用領域,興趣......)集體中。然而,這可能是壓倒性的,並且可能是有風險的,因爲那裏的所有包都沒有「黃金時間準備好」(但許多人都「並且多次拯救了我的生命」)。

  • 即使你對Python感覺太新了,不僅使用了這個庫,請看下引擎!許多語言都是這樣,但可能特別是Python,從各種源代碼中學到很多知識。這對於Python來說可能特別真實的原因是語言本身固有的(多範式,高層次的抽象......),但也是因爲編碼(和架構)風格的一致性以及由於一般級別在社區內進行合作。

+0

給出鏈接到標準庫的目錄 – 2010-02-28 18:35:46

+0

http://docs.python.org/library/ - 順便說一下,好點。在我第一次使用Python之後大約一年半的時間,我第一次瀏覽了標準庫的文檔,並且記住想想如果我早些時候知道它,它會爲我帶來多少便利。 。 – 2010-02-28 19:19:32

+0

@mjv語法檢查:偷看 - >做偷看 – Tshepang 2010-04-27 00:59:38

4

PEP 20:

import this 

(又名Python中的禪)

+0

我認爲特別是解釋名稱空間(來自PHP的人)的有用性和明確性(對於查看Ruby和Python的人)是理解Python的關鍵。它讓我驚歎於Python的禪宗是如何發現的:) – 2010-02-28 19:23:56

+0

我實際上已經多次使用PEP來證明我在代碼評論中的評論。 – 2010-02-28 19:57:17

1

發展可以用的easy_install等安裝Python包......我認爲這是相當於開發一個罐子或dll etc ...

基於同樣的道理,用virtualenv開發所述軟件包或構建

如果我早點知道這些事情,那麼當我第一次開始使用python時,我可能不僅僅使用了python。