發(fā)布于:2020-12-24 16:02:48
0
976
0
作者 | Claire D. Costa
編譯 | Wendy
有很多 Python 新手留言問(wèn):“Python 入門(mén)很久了,但項(xiàng)目經(jīng)驗(yàn)很少,有沒(méi)有什么項(xiàng)目,可以讓自己實(shí)踐一下呢?”
這是個(gè)很普遍的問(wèn)題,首先你要想好做什么類別的項(xiàng)目,總體來(lái)說(shuō),項(xiàng)目分為三類:
Web
構(gòu)建一個(gè) Web 應(yīng)用發(fā)布在網(wǎng)絡(luò)上讓用戶訪問(wèn)使用。需要實(shí)現(xiàn) Web 應(yīng)用的前端、后端、可視化部分的業(yè)務(wù)邏輯。可以使用 Django,F(xiàn)lask 和 Web2Py 等工具和框架來(lái)完成。
桌面 GUI
桌面應(yīng)用也很常見(jiàn),好的應(yīng)用可以滿足相當(dāng)大的用戶群體。在構(gòu)建桌面應(yīng)用時(shí),可以使用 PySimpleGUI 包輕松開(kāi)發(fā),該包允許你使用 Python 來(lái)構(gòu)建所有必要的元素;PyQt5 框架還提供了高級(jí) GUI 構(gòu)建元素,但學(xué)習(xí)難度會(huì)更高一點(diǎn)。
命令行程序
命令行程序僅在控制臺(tái)窗口中工作,根本沒(méi)有 GUI。用戶交互是通過(guò)命令進(jìn)行的,它是與程序進(jìn)行交互的最老的方法,但不要因?yàn)槿狈?shí)用性而將缺少 GUI 視為錯(cuò)誤。
數(shù)以百計(jì)的頂級(jí)企業(yè)依靠命令行程序執(zhí)行日常業(yè)務(wù)活動(dòng)。要構(gòu)建命令行程序,可以使用 docopt,Python Fire,plac 和 cliff 等工具。
Python 對(duì)不同水平的開(kāi)發(fā)者都很友好,從學(xué)生到普通開(kāi)發(fā)人員,甚至是專家和專業(yè)人士都適用。但每一門(mén)編程語(yǔ)言都需要不斷的學(xué)習(xí),Python 也是如此。
如果你想要更深入的學(xué)習(xí)一些實(shí)用技能,最好的方法就是用 Python 上手實(shí)踐一些有趣的項(xiàng)目。下面提到的這些項(xiàng)目面向所有技能水平的開(kāi)發(fā)者,它們可以提高你對(duì) Python 的技能掌握和興趣程度。
互聯(lián)網(wǎng)是數(shù)百萬(wàn)人的主要信息來(lái)源,人們總會(huì)需要通過(guò)網(wǎng)絡(luò)搜索些什么。如果需要搜索大量關(guān)于特定主題的信息,可以利用內(nèi)容聚合器來(lái)節(jié)省搜索時(shí)間。
內(nèi)容聚合器是一種從大量網(wǎng)站抓取特定主題的信息并加以整合的工具。要制作一個(gè)內(nèi)容聚合器,你可以用 requests 庫(kù)處理 HTTP 請(qǐng)求,利用 BeautifulSoup 解析和爬取所需信息,同時(shí)借助數(shù)據(jù)庫(kù)來(lái)保存收集到的信息。
案例:http://www.hvper.com/
URL 是一切互聯(lián)網(wǎng)資源的主要導(dǎo)航來(lái)源,有時(shí)候這些 URL 會(huì)包含大量的亂碼,短網(wǎng)址生成器能夠減少這些 URL 中的字符數(shù),更易于記憶和使用。
開(kāi)發(fā)短網(wǎng)址生成器實(shí)際上就是利用隨機(jī)和字符串模塊,從輸入的長(zhǎng)URL中生成一個(gè)新的短 URL。完成這一步之后,你需要將長(zhǎng) URL 和短 URL 進(jìn)行映射,然后存儲(chǔ)在數(shù)據(jù)庫(kù)中,以便用戶未來(lái)使用。
案例:https://bitly.com/
如果你的工作需要經(jīng)常管理大量文件,那么文件重命名工具能為你節(jié)省大量時(shí)間。從本質(zhì)上來(lái)說(shuō),文件重命名工具就是利用預(yù)定義的初始標(biāo)識(shí)符重命名數(shù)百個(gè)文件,其中的初始標(biāo)識(shí)符可以通過(guò)代碼定義,也可以讓客戶自定義。
你可以使用 Python 中的 sys、shutil 和 os 等庫(kù)來(lái)實(shí)現(xiàn)即時(shí)重命名文件。如果需要為文件添加自定義初始標(biāo)識(shí)符的選項(xiàng),你可以利用 regex 庫(kù)匹配文件的命名模式。
案例:https://en.wikipedia.org/wiki/Ren_(command)
如果你需要對(duì)系統(tǒng)中的所有目錄進(jìn)行可視化處理,并確定它們之間的關(guān)系,那么就需要用到目錄樹(shù)生成器這種工具。
目錄樹(shù)的本質(zhì)作用是表明哪些目錄是始目錄,而哪些又是它的子目錄。如果你的工作涉及很多目錄,而你又想要分析它們的位置,這樣的工具就能幫到你。
要構(gòu)建目錄樹(shù)生成器,你可以使用 os 庫(kù)列出文件和目錄,以及 docopt 框架。
案例:https://en.wikipedia.org/wiki/Tree_(command)
如果你喜歡聽(tīng)音樂(lè),你可能想不到用 Python 就能構(gòu)建一個(gè)音樂(lè)播放器。利用圖形界面構(gòu)建一個(gè) MP3 播放器,配有基本的重放控件,甚至可以顯示綜合媒體信息,比如藝術(shù)家、媒體長(zhǎng)度、專輯名稱等等。
你也可以選擇用音樂(lè)播放器導(dǎo)航到文件夾和搜索 MP3 文件。為了能更方便地利用 Python 處理媒體文件,你可以使用 simpleaudio、pymedia 和 pygame 庫(kù)。
案例:https://getmusicbee.com/
井字游戲是一款非常經(jīng)典的游戲,相信大家都很熟悉。這個(gè)游戲簡(jiǎn)單有趣,而且只需要兩名玩家參與。
游戲目標(biāo)是在一個(gè) 3x3 的網(wǎng)格上畫(huà)X或O,最先以橫、直、對(duì)角斜連成一線的玩家為勝。類似這種項(xiàng)目可以使用 Python 的 pygame 庫(kù),它自帶構(gòu)建這種項(xiàng)目所需的所有圖形和音頻素材。
案例:https://www.edureka.co/blog/snake-game-with-pygame/
另外還有一種既流行又有趣,用 Python 就可以構(gòu)建的項(xiàng)目就是測(cè)驗(yàn)應(yīng)用程序,其中一個(gè)很受歡迎的產(chǎn)品就是 Kahoot。
這是一款可以在課堂上進(jìn)行答題互動(dòng)的產(chǎn)品,它把學(xué)習(xí)變成一種有趣的現(xiàn)場(chǎng)/課堂答題活動(dòng),很受學(xué)生歡迎。這種應(yīng)用程序是給出一系列選擇題,要求用戶選擇其中一個(gè)選項(xiàng),并在設(shè)置時(shí)間結(jié)束后揭示正確的選項(xiàng)。
作為開(kāi)發(fā)者,你也可以創(chuàng)建可供用戶隨意添加想要納入測(cè)驗(yàn)的問(wèn)題和答案的功能。要制作一個(gè)測(cè)驗(yàn)應(yīng)用程序,你需要利用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)所有的問(wèn)題、選項(xiàng)、正確答案和用戶得分。
案例:https://kahoot.com/
當(dāng)然,在學(xué)習(xí)一門(mén)新的編程語(yǔ)言時(shí),大家可以試試開(kāi)發(fā)一個(gè)計(jì)算器(這種傳統(tǒng)項(xiàng)目,僅僅為了好玩兒也不該錯(cuò)過(guò))。相信大家都知道什么是計(jì)算器,如果你已經(jīng)試過(guò)了,還可以嘗試?yán)酶呒?jí)的 GUI 對(duì)它進(jìn)行改進(jìn),讓它更接近于當(dāng)前操作系統(tǒng)中采用的新型計(jì)算器。想要實(shí)現(xiàn)這個(gè)目標(biāo),你可以使用 tkinter 包為項(xiàng)目添加 GUI 元素。
現(xiàn)在幾乎每部智能手機(jī)都自帶一個(gè)不同類型的智能助手,它能接收你的語(yǔ)音或文字命令,幫你管理電話、筆記、預(yù)約出租車(chē)等等,比如谷歌助理、Alexa、Cortana 和 Siri 等。
如果你想試試如何制作這類東西,可以使用 pyaudio、SpeechRecognition、gTTS 等工具包。這個(gè)項(xiàng)目的目標(biāo)是記錄音頻,將音頻轉(zhuǎn)換為文本、處理命令,讓程序根據(jù)命令做出對(duì)應(yīng)響應(yīng)。
顧名思義,這個(gè)項(xiàng)目是要構(gòu)建一個(gè)貨幣換算器,你只要輸入所需的基準(zhǔn)貨幣值,轉(zhuǎn)換器就能向你反饋換算后的目標(biāo)貨幣值。
最好是通過(guò)代碼實(shí)現(xiàn)從互聯(lián)網(wǎng)獲取最新兌換利率的功能,來(lái)提高換算的準(zhǔn)確性。想要實(shí)現(xiàn)這個(gè)目標(biāo),你可以利用 tkinter 包來(lái)構(gòu)建圖形用戶界面。
我們可以發(fā)現(xiàn) Python 是一種非常實(shí)用的編程語(yǔ)言,適用于開(kāi)發(fā)各種類型和規(guī)模的應(yīng)用程序。此外,Python 配置的程序包對(duì)于開(kāi)發(fā)者來(lái)說(shuō)價(jià)值巨大,能夠極大地簡(jiǎn)化開(kāi)發(fā)過(guò)程。
最后,我想說(shuō)的是,Python 的應(yīng)用潛力無(wú)限,你唯一缺少的就是找準(zhǔn)適當(dāng)?shù)膭?chuàng)意。
作者介紹
熱門(mén)博客推薦