學(xué)習(xí)Python編程的十大資源

1 使用Python在線文檔

使用Python的一個(gè)主要部分是了解這種語(yǔ)言中有哪些內(nèi)容可用以及如何擴(kuò)展它來(lái)做其他任務(wù)。在線Python文檔(寫(xiě)作本書(shū)時(shí)的版本為3.6.x,當(dāng)你讀到這里時(shí)文檔版本很可能已經(jīng)更新了)提供了更多有關(guān)Python的參考資料,包括如下主題:

  • 當(dāng)前Python版本添加的新特征;
  • 完整教程;
  • 完整庫(kù)參考;
  • 完整語(yǔ)言參考;
  • 如何安裝和配置Python;
  • 如何使用Python執(zhí)行特定任務(wù);
  • 從其他源安裝Python模塊(作為Python擴(kuò)展的手段);
  • 發(fā)布自己創(chuàng)建的Python模塊,供其他人使用;
  • 如何使用C/C++擴(kuò)展Python,以及嵌入你創(chuàng)建的新特征;
  • 面向C/C++開(kāi)發(fā)者(想使用Python擴(kuò)展他們的應(yīng)用程序)的完整參考;
  • FAQ頁(yè)面。

Python學(xué)習(xí)交流群:835017344,這里是python學(xué)習(xí)者聚集地,有大牛答疑,有資源共享!有想學(xué)習(xí)python編程的,或是轉(zhuǎn)行,或是大學(xué)生,還有工作中想提升自己能力的,正在學(xué)習(xí)的小伙伴歡迎加入學(xué)習(xí)。

上面所有信息都是以易于訪問(wèn)和使用的形式提供的。查找信息時(shí),除了使用常見(jiàn)的內(nèi)容目錄之外,你還可以使用索引進(jìn)行查找。例如,如果你只對(duì)特定的模塊、類或方法感興趣,那么你可以使用全局模塊索引(Global Module Index)查找。

此外,你也可以把自己使用Python時(shí)遇到的問(wèn)題在官網(wǎng)中進(jìn)行提交。雖然解決與產(chǎn)品相關(guān)的問(wèn)題很重要,但是和其他語(yǔ)言一樣,Python中也會(huì)存在bug。找出和修正這些bug會(huì)讓Python變得更好。

在線文檔使用起來(lái)很靈活。在文檔頁(yè)面的左上角有兩個(gè)下拉列表框:第一個(gè)是語(yǔ)言下拉列表框,從中你可以選擇自己喜歡的語(yǔ)言(寫(xiě)作本書(shū)時(shí),只有英語(yǔ)、法語(yǔ)和日語(yǔ)3種語(yǔ)言可供選擇);第二個(gè)是Python版本選擇下拉列表框,里面提供了一些Python早期版本,包括Python 2.7。

2 使用http://LearnPython.org教程

網(wǎng)上Python學(xué)習(xí)教程有很多,大都做得很不錯(cuò),但相比于LearnPython網(wǎng)站上的教程,它們都有一個(gè)不足,那就是缺少交互性。在LearnPython網(wǎng)站上學(xué)習(xí)Python時(shí),你不只是在閱讀有關(guān)Python的知識(shí),還可以使用網(wǎng)站提供的交互環(huán)境親自動(dòng)手試一試。

到這里,本書(shū)中的簡(jiǎn)單教程你可能都學(xué)過(guò)了。但LearnPython網(wǎng)站上的一些高級(jí)教程你可能還沒(méi)學(xué)過(guò)。這些教程主要講解以下主題。

  • 生成器:

返回迭代器的特殊函數(shù)。

  • 列表生成式:

一種基于現(xiàn)有列表生成新列表的方法。

  • 可變函數(shù)參數(shù):

對(duì)第15章“使用帶有可變參數(shù)列表的方法”內(nèi)容的補(bǔ)充。

  • 正則表達(dá)式:

用于匹配字符模式的通配符設(shè)置,比如電話號(hào)碼。

  • 異常處理:

對(duì)第10章內(nèi)容的擴(kuò)展。

  • 集合:

這是一種特殊的列表,里面不包含重復(fù)元素。

  • 序列化:

講解如何使用JSON這種數(shù)據(jù)存儲(chǔ)技術(shù)。

  • 偏函數(shù):

用于創(chuàng)建派生于較復(fù)雜函數(shù)的簡(jiǎn)單函數(shù)的專門化版本。比如,你有一個(gè)帶有兩個(gè)參數(shù)的multiply()函數(shù),那么名為double()的偏函數(shù)可能只需要一個(gè)參數(shù),這個(gè)參數(shù)總是要乘以2。

  • 代碼審查:

提供檢查類、函數(shù)、關(guān)鍵字的能力,用于判斷用途和功能。

  • 裝飾器:

一種對(duì)可調(diào)用對(duì)象進(jìn)行簡(jiǎn)單修改的方法。

3 使用Python做Web編程

本書(shū)探討了基本編程的來(lái)龍去脈,其中涉及的都是很簡(jiǎn)單的桌面應(yīng)用程序。有許多開(kāi)發(fā)人員專門使用Python創(chuàng)建各種各樣的在線應(yīng)用程序。Python Web編程網(wǎng)站可以幫助你從桌面程序開(kāi)發(fā)轉(zhuǎn)向在線應(yīng)用程序開(kāi)發(fā)。它并非只講解一種在線應(yīng)用程序,而是涵蓋了幾乎所有應(yīng)用程序(免費(fèi)提供整本書(shū))。教程分為如下3個(gè)主要部分(和許多次要部分)。

  • 服務(wù)器

  • 開(kāi)發(fā)應(yīng)用程序服務(wù)器端框架

  • 創(chuàng)建CGI腳本

  • 提供服務(wù)器應(yīng)用程序

  • 開(kāi)發(fā)內(nèi)容管理系統(tǒng)(CMS)

  • 通過(guò)Web服務(wù)方案設(shè)計(jì)數(shù)據(jù)訪問(wèn)方法

  • 客戶端

  • 使用瀏覽器和基于瀏覽器的技術(shù)

  • 創(chuàng)建基于瀏覽器的客戶端

  • 通過(guò)各種技術(shù)(包括Web服務(wù))訪問(wèn)數(shù)據(jù)

  • 相關(guān)

  • 為基于Python的在線計(jì)算創(chuàng)建通用方案

  • 使用數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

  • 設(shè)計(jì)應(yīng)用程序模板

  • 構(gòu)建內(nèi)部網(wǎng)解決方案

4 獲取更多庫(kù)

或許你會(huì)認(rèn)為Pythonware這個(gè)站點(diǎn)平淡無(wú)奇,但當(dāng)你進(jìn)入這個(gè)網(wǎng)站后,你就會(huì)被它深深吸引。這個(gè)網(wǎng)站提供了大量第三方庫(kù),借助這些庫(kù),你可以使用Python做更多的工作。

網(wǎng)站里面有大量鏈接,為我們提供了很多有用的資源。其中,通過(guò)“Downloads”這個(gè)鏈接你可以訪問(wèn)如下庫(kù)。

  • aggdraw

這個(gè)庫(kù)幫助你繪制平滑的線條。

  • celementtree

這個(gè)庫(kù)是elementtree庫(kù)的擴(kuò)展庫(kù),可以讓你更快、更高效地使用XML數(shù)據(jù)。

  • console

這是一個(gè)窗口界面,幫助我們創(chuàng)建出更好的控制臺(tái)程序。

  • effbot

包含了許多有用的附加組件和實(shí)用程序,包括ENews RSS新聞閱讀器。

  • elementsoap

這個(gè)庫(kù)可以幫助我們創(chuàng)建到Web服務(wù)提供者的SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)連接。

  • elementtidy

這是對(duì)elementtree庫(kù)的擴(kuò)展,可以幫助我們創(chuàng)建出更好看、功能更強(qiáng)大的XML樹(shù)。

  • elementtree

這個(gè)庫(kù)可以幫助我們更高效地使用XML數(shù)據(jù)。

  • exemaker

這是一個(gè)從Python腳本創(chuàng)建可執(zhí)行程序的實(shí)用程序,借助它,你可以在機(jī)器上像運(yùn)行其他應(yīng)用程序一樣運(yùn)行腳本。

  • ftpparse

這個(gè)庫(kù)用來(lái)使用FTP站點(diǎn)。

  • grabscreen

這個(gè)庫(kù)用來(lái)截屏。

  • imaging

向Python圖像處理庫(kù)(PIL)提供源代碼分發(fā),該庫(kù)允許你向Python解釋器添加圖像處理功能。通過(guò)它,你可以定制PIL來(lái)滿足自己特定的需求。

  • pil

PIL的二進(jìn)制安裝程序,它可以讓PIL庫(kù)更容易地安裝到你的系統(tǒng)中。(還有其他基于PIL的庫(kù),比如pilfont庫(kù),這個(gè)庫(kù)用于向基于PIL的應(yīng)用程序添加字體增強(qiáng)功能)。

  • pythondoc

這個(gè)實(shí)用程序用來(lái)從Python代碼中的注釋創(chuàng)建文檔,其工作原理與JavaDoc類似。

  • squeeze

這個(gè)實(shí)用程序用于將包含在多個(gè)文件中的Python程序轉(zhuǎn)換為單文件或雙文件的發(fā)行版,并能夠在Python解釋器中正常執(zhí)行。

  • tkinter3000

這個(gè)庫(kù)是Python的標(biāo)準(zhǔn)GUI部件庫(kù),包含許多子產(chǎn)品。這些部件本質(zhì)上是一些代碼,用于創(chuàng)建GUI應(yīng)用程序中的控件,如按鈕。tkinter3000庫(kù)有許多附加組件,例如wckgraph,它幫助你向應(yīng)用程序添加圖形支持。

5 使用IDE快速創(chuàng)建應(yīng)用程序

交互式開(kāi)發(fā)環(huán)境(IDE)幫助你使用特定語(yǔ)言創(chuàng)建應(yīng)用程序。Python本身自帶了一個(gè)集成開(kāi)發(fā)環(huán)境——IDLE,適合用來(lái)做代碼實(shí)驗(yàn),但用過(guò)一段時(shí)間之后你就會(huì)發(fā)現(xiàn)它有不少局限性,例如,IDLE并不提供許多開(kāi)發(fā)人員喜歡的高級(jí)調(diào)試功能。另外,當(dāng)你要?jiǎng)?chuàng)建圖形應(yīng)用程序時(shí),IDLE很難幫你做到這一點(diǎn)。

由于IDLE本身存在諸多的局限性,所以本書(shū)才決定采用Jupyter Notebook來(lái)代替IDLE(本書(shū)第一版采用的是IDLE)。不過(guò),在某些情況下,你還是會(huì)發(fā)現(xiàn)Jupyter Notebook并不能滿足你的需求。如果你問(wèn)50個(gè)開(kāi)發(fā)人員哪些工具(尤其是問(wèn)IDE時(shí))是最好用的萬(wàn)金油,他們的回答大都不一樣,幾乎很難達(dá)成共識(shí)。每個(gè)開(kāi)發(fā)人員都有自己喜歡的工具,也都不太愿意去嘗試其他工具。通常,開(kāi)發(fā)人員會(huì)花很多時(shí)間來(lái)學(xué)習(xí)某款I(lǐng)DE工具,并通過(guò)擴(kuò)展它以滿足自己特定的需求(當(dāng)然,這要求IDE本身支持?jǐn)U展)。

在選定某個(gè)IDE之前要多嘗試幾種不同的IDE,這點(diǎn)很重要,因?yàn)橐坏┠氵x定了某種IDE,以后就很難再做出改變了。(一旦你選中某個(gè)IDE之后,就不想再換成其他IDE了,其中最常見(jiàn)的原因是項(xiàng)目類型不兼容,每次換IDE時(shí),你都必須重新創(chuàng)建項(xiàng)目,此外還有許多其他原因,你可以在網(wǎng)上找到)。PythonEditors維基主頁(yè)列出了許多IDE,你可以嘗試一下它們。并且表格中為你提供了每個(gè)IDE的詳細(xì)信息,你可以根據(jù)這些信息和自己的需求立即排除某些IDE。

6 更容易地檢查語(yǔ)法

IDLE提供了某種程度的語(yǔ)法高亮顯示功能,這有助于我們查找代碼中的錯(cuò)誤。比如,如果你輸入錯(cuò)誤的關(guān)鍵字,IDLE就不會(huì)將其顏色更改為系統(tǒng)中定義好的關(guān)鍵字顏色。這樣,你就可以立即知道錯(cuò)誤出在哪里,以及如何修改它,而不必等到應(yīng)用程序運(yùn)行后才發(fā)現(xiàn)錯(cuò)誤(有時(shí)需要經(jīng)過(guò)幾個(gè)小時(shí)的調(diào)試才能找到錯(cuò)誤)。

Jupyter Notebook也提供了語(yǔ)法高亮顯示功能,還有一些標(biāo)準(zhǔn)IDE所不具備的高級(jí)錯(cuò)誤檢查功能。不過(guò),對(duì)于某些開(kāi)發(fā)人員來(lái)說(shuō),它本身可能也有一些不足,比如你必須實(shí)際運(yùn)行單元格才能看到錯(cuò)誤信息。有些開(kāi)發(fā)人員更喜歡交互式語(yǔ)法檢查方式,在這種檢查方式中,IDE會(huì)立即標(biāo)記出代碼中的錯(cuò)誤,甚至在開(kāi)發(fā)人員離開(kāi)錯(cuò)誤代碼行之前,其中錯(cuò)誤就已經(jīng)被標(biāo)識(shí)出來(lái)了。

python.vim實(shí)用程序提供了增強(qiáng)型的語(yǔ)法突出顯示功能,使得在Python腳本中查找錯(cuò)誤更加容易。這個(gè)實(shí)用程序以腳本形式運(yùn)行,這使得它可以在任何平臺(tái)上都能快速、高效地使用。此外,你還可以根據(jù)需要調(diào)整其源代碼以滿足特定的需求。

7 使用XML

現(xiàn)在大多數(shù)應(yīng)用程序都使用可擴(kuò)展標(biāo)記語(yǔ)言(XML)來(lái)進(jìn)行各種類型的數(shù)據(jù)存儲(chǔ)工作。你的系統(tǒng)中可能就有很多XML文件,但你可能認(rèn)不出它們,因?yàn)閄ML數(shù)據(jù)存在于許多文件擴(kuò)展名之下。比如,許多用來(lái)保存應(yīng)用程序設(shè)置的.config文件使用的就是XML。簡(jiǎn)而言之,現(xiàn)在的問(wèn)題不是編寫(xiě)Python應(yīng)用程序的過(guò)程中你會(huì)不會(huì)遇到XML,而是你什么時(shí)候會(huì)遇到它。

與其他存儲(chǔ)數(shù)據(jù)的方法相比,XML有許多優(yōu)點(diǎn),比如,XML是平臺(tái)獨(dú)立的。你可以在任何系統(tǒng)上使用XML,只要系統(tǒng)認(rèn)識(shí)這種文件格式,同一個(gè)文件在不同系統(tǒng)上就都是可讀的。由于XML是平臺(tái)獨(dú)立的,所以你可以在許多其他技術(shù)(比如Web服務(wù))中看到XML的身影。此外,XML學(xué)起來(lái)相對(duì)容易,而且還是文本的,所以你可以大量使用它,而不用擔(dān)心會(huì)引起太多問(wèn)題。

學(xué)習(xí)XML本身是很重要的,你可以在類似W3Schools的教學(xué)網(wǎng)站上查找相關(guān)教程來(lái)學(xué)習(xí)。有些開(kāi)發(fā)人員在沒(méi)有掌握XML文件相關(guān)知識(shí)的情形下就急于著手做各種工作,后來(lái)他們發(fā)現(xiàn)有些Python資料看不懂,因?yàn)檫@些資料往往會(huì)假設(shè)讀者知道如何編寫(xiě)基本的XML文件。W3Schools這個(gè)網(wǎng)站很不錯(cuò),它把整個(gè)學(xué)習(xí)過(guò)程分成若干章節(jié),這樣每次你就可以使用一些XML,如下:

  • XML基礎(chǔ)教程;
  • 驗(yàn)證你的XML文件;
  • XML和JavaScript(JavaScript看上去不重要,但在許多在線應(yīng)用場(chǎng)景中,JavaScript應(yīng)用廣泛)配合使用;
  • 了解與XML相關(guān)的技術(shù);
  • 使用XML高級(jí)技術(shù);
  • 使用XML示例使XML更易用。

利用W3Schools學(xué)習(xí)計(jì)算機(jī)技術(shù)

在線學(xué)習(xí)計(jì)算機(jī)技術(shù)最常用的網(wǎng)站是W3Schools,你可以在其官網(wǎng)中找到要學(xué)習(xí)的內(nèi)容。在這個(gè)網(wǎng)站中,你可以找到創(chuàng)建各種應(yīng)用程序所需要的Web技術(shù)。所涉及的主題包括:

  • HTML;
  • CSS;
  • JavaScript;
  • SQL;
  • JQuery;
  • PHP;
  • XML;
  • http://ASP.NET

但是,你應(yīng)該知道,這對(duì)Python開(kāi)發(fā)人員來(lái)說(shuō)只是一個(gè)起點(diǎn)。先利用W3Schools中的學(xué)習(xí)資料來(lái)切實(shí)掌握底層技術(shù),然后通過(guò)Python專門資料來(lái)提升你的技能。大多數(shù)Python開(kāi)發(fā)人員都需要綜合各種學(xué)習(xí)資料來(lái)提升自己的技能,從而在編寫(xiě)應(yīng)用程序的過(guò)程中展現(xiàn)出與眾不同的一面。

掌握了有關(guān)XML的基礎(chǔ)知識(shí)之后,你需要學(xué)習(xí)如何在Python中使用XML。網(wǎng)上有各種技術(shù)專題,你可以在各個(gè)網(wǎng)站中找到關(guān)于使用Python處理XML的教程。通過(guò)學(xué)習(xí)這些教程,你可以快速了解有關(guān)XML的知識(shí),并讓你能夠快速創(chuàng)建出使用XML的Python應(yīng)用程序。

8 克服常見(jiàn)的Python新手錯(cuò)誤

毫無(wú)疑問(wèn),每個(gè)人編寫(xiě)代碼時(shí)都會(huì)犯錯(cuò)誤,即便那些有著30多年編程經(jīng)驗(yàn)的老程序員(他們大概從幼兒園就開(kāi)始學(xué)習(xí)編程了)也不例外。每個(gè)人都會(huì)犯錯(cuò),但沒(méi)人喜歡犯錯(cuò),有些人犯了錯(cuò)還不愿意承認(rèn),其實(shí)沒(méi)這必要,犯了錯(cuò)時(shí),不要太沮喪,只要把錯(cuò)誤改正過(guò)來(lái),你的生活就可以繼續(xù)下去。

當(dāng)然,犯錯(cuò)誤和犯可以避免的常見(jiàn)錯(cuò)誤是有區(qū)別的。不錯(cuò),即使是專業(yè)人士有時(shí)也會(huì)犯一些本可以避免的常見(jiàn)錯(cuò)誤,但這種可能性要小很多,因?yàn)樗麄冞^(guò)去已經(jīng)經(jīng)歷過(guò)這種錯(cuò)誤,并訓(xùn)練自己去避免它。你可以通過(guò)避免新手錯(cuò)誤來(lái)獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。

對(duì)于剛開(kāi)始學(xué)習(xí)Python的人來(lái)說(shuō),還有許多其他資料可用,但是相比之下,上面這些資料內(nèi)容簡(jiǎn)潔且容易理解。你可以在較短的時(shí)間內(nèi)讀完它們,做一些筆記以備用,并避免那些讓每個(gè)人都會(huì)記住的尷尬錯(cuò)誤。

9 了解Unicode

盡管本書(shū)試圖回避Unicode這個(gè)棘手的話題,但是當(dāng)你開(kāi)始編寫(xiě)正規(guī)應(yīng)用程序時(shí),你最終還是會(huì)碰到它。不過(guò),遺憾的是,Unicode是由一個(gè)委員會(huì)來(lái)決定的,所以最終就有了不止一個(gè)定義和標(biāo)準(zhǔn)。簡(jiǎn)而言之,Unicode沒(méi)有一個(gè)統(tǒng)一的定義。

當(dāng)你開(kāi)始使用更高級(jí)的Python應(yīng)用程序時(shí),你會(huì)遇到大量的Unicode標(biāo)準(zhǔn),特別是當(dāng)你的程序要在多種語(yǔ)言(每種語(yǔ)言似乎都有自己的Unicode)下運(yùn)行時(shí)。請(qǐng)記住,我們需要了解Unicode是什么,下面提供給你一些學(xué)習(xí)主題:

  • Unicode和字符集;
  • Python中的Unicode更新;
  • Python編碼和Unicode;
  • Unicode概述,參見(jiàn)Unicode官網(wǎng)。

10 加快Python程序的運(yùn)行速度

就應(yīng)用程序來(lái)說(shuō),沒(méi)有什么比性能差更能嚇跑用戶的了。當(dāng)應(yīng)用程序性能很差時(shí),用戶根本就不愿意使用它。事實(shí)上,糟糕的性能是造成應(yīng)用程序在企業(yè)環(huán)境中失敗的一個(gè)重要原因。即便有組織愿意花費(fèi)大量金錢去創(chuàng)建一個(gè)萬(wàn)能的應(yīng)用程序,但是如果這個(gè)程序的運(yùn)行速度太慢,或者有嚴(yán)重的性能問(wèn)題,也不會(huì)有人愿意使用它。

事實(shí)上,性能是可靠性、安全性和速度的綜合,這3個(gè)因素構(gòu)成了“性能三角”。你可以在作者的博客中讀到有關(guān)性能三角形的內(nèi)容。許多開(kāi)發(fā)人員只關(guān)注性能的速度部分,但最終沒(méi)能實(shí)現(xiàn)他們的目標(biāo)。重要的是查看應(yīng)用程序使用資源的各個(gè)方面,并確保你使用了最好的編碼技術(shù)。

網(wǎng)上有很多資源可以幫助你理解Python應(yīng)用程序的性能,希望讀者可以廣泛學(xué)習(xí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 已經(jīng)在揚(yáng)州被熱到蒸發(fā)的小伙伴們! 噩耗啊~~~ 2016年從昨天開(kāi)始入伏! 三伏天來(lái)啦! 并且出現(xiàn)在小暑和立秋之中...
    奔跑的兔子2011閱讀 453評(píng)論 0 0
  • 夜里,我失眠了,坐起來(lái),遙望窗外那濃郁又稍有青澀的遠(yuǎn)方,忽而有個(gè)叫生活的家伙,坐在我身旁,要跟我聊起屬于他自己的荒...
    沐愈閱讀 514評(píng)論 3 4
  • 最近閑著沒(méi)事就想找事干,好久不寫(xiě)OC了,就動(dòng)手練練寫(xiě)個(gè)小demo玩玩??匆曨l的時(shí)候感覺(jué)愛(ài)奇藝的視頻類型選擇標(biāo)簽還不...
    讓代碼飛閱讀 1,483評(píng)論 0 0
  • 2018年5月11日 星期五晴天 孩子今天說(shuō)媽媽你這份工作不好。都沒(méi)有時(shí)間陪我了,管理我的時(shí)間越來(lái)越少了...
    91b6f8355762閱讀 204評(píng)論 0 2
  • 用心理表征與檢視閱讀的方法閱讀完《正面管教》,充斥在腦海中的三個(gè)關(guān)鍵詞:溫和而堅(jiān)定、尊重、鼓勵(lì)。 其實(shí)在非暴力溝通...
    懿拾閱讀 761評(píng)論 2 0

友情鏈接更多精彩內(nèi)容