中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

面向中級(jí) Python 開(kāi)發(fā)人員的 13 個(gè)項(xiàng)目構(gòu)想

2019-08-27    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

學(xué)習(xí) python 的基礎(chǔ)知識(shí)是一種美妙的體驗(yàn)。但是,學(xué)習(xí)的喜悅可以被對(duì)實(shí)踐項(xiàng)目的渴望所取代。想要建立項(xiàng)目是正常的,因此需要對(duì)項(xiàng)目的構(gòu)想。
 

但問(wèn)題是,有些項(xiàng)目對(duì)于中級(jí)的 Python 開(kāi)發(fā)人員來(lái)說(shuō)過(guò)于簡(jiǎn)單,或者過(guò)于困難。為此,工程師 Habeeb Shopeju 寫(xiě)了一篇文章,文中給出了適合中級(jí) Python 開(kāi)發(fā)人員 13 個(gè)項(xiàng)目構(gòu)想,或許會(huì)對(duì)你有所幫助。

目錄

構(gòu)建項(xiàng)目的重要性

選擇項(xiàng)目平臺(tái)

網(wǎng)頁(yè)
桌面圖形用戶(hù)界面
命令行

Web 項(xiàng)目想法

內(nèi)容聚合器
Regex 查詢(xún)工具
縮短網(wǎng)址
便利貼
測(cè)驗(yàn)申請(qǐng)

圖形用戶(hù)界面項(xiàng)目理念

MP3 播放器
報(bào)警工具
文件管理器
費(fèi)用追蹤器

命令行項(xiàng)目思想

聯(lián)系人簿
站點(diǎn)連接檢查器
批量文件重命名工具
目錄樹(shù)生成器

項(xiàng)目工作建議

結(jié)論

在本文中,你將了解到:

構(gòu)建項(xiàng)目的重要性

你可以構(gòu)建項(xiàng)目的主要平臺(tái)

13 個(gè)你可以使用的項(xiàng)目構(gòu)想

關(guān)于項(xiàng)目工作的一些小建議

構(gòu)建項(xiàng)目的重要性

項(xiàng)目工作對(duì)于推動(dòng)你作為 Python 開(kāi)發(fā)人員的職業(yè)生涯來(lái)說(shuō)至關(guān)重要,它讓你有機(jī)會(huì)運(yùn)用你所獲得的技能和知識(shí)。

項(xiàng)目可以幫助你:

建立信心:無(wú)論項(xiàng)目的復(fù)雜程度如何,你都會(huì)更加相信自己創(chuàng)建軟件的能力。

探索其他技術(shù):你將了解構(gòu)建完整產(chǎn)品所需的其他技術(shù),如數(shù)據(jù)庫(kù)、服務(wù)器和其他語(yǔ)言。

更好地理解編程概念:你將學(xué)習(xí)更好地編寫(xiě)代碼,并了解設(shè)計(jì)模式和面向?qū)ο缶幊痰雀拍睢?/p>

體驗(yàn)一個(gè)完整的軟件開(kāi)發(fā)生命周期:在編寫(xiě)代碼、管理編碼過(guò)程和更新軟件之前,你將學(xué)會(huì)如何計(jì)劃。

作為一個(gè) Python 開(kāi)發(fā)人員,從構(gòu)建項(xiàng)目中可以獲得很多好處。

選擇項(xiàng)目平臺(tái)

你需要構(gòu)建在平臺(tái)上運(yùn)行的軟件,以便缺乏特定技術(shù)知識(shí)的人可以使用你的軟件。Web、桌面和命令行是可以構(gòu)建項(xiàng)目的三個(gè)主要平臺(tái)。

Web

Web 應(yīng)用程序是在 Web 上運(yùn)行的應(yīng)用程序,只要可以訪(fǎng)問(wèn) Internet,就可以在任何設(shè)備上訪(fǎng)問(wèn)它們,而無(wú)需下載。如果你希望所有具有 Internet 訪(fǎng)問(wèn)權(quán)限的人都能訪(fǎng)問(wèn)你的項(xiàng)目,那么這個(gè)項(xiàng)目必須是一個(gè) Web 應(yīng)用程序。

Web 應(yīng)用程序有后端和前端。后端是業(yè)務(wù)邏輯所在的部分:后端代碼將操作和存儲(chǔ)數(shù)據(jù)。前端是應(yīng)用程序的接口:前端代碼將決定 Web 應(yīng)用程序的外觀。

作為一個(gè)中級(jí)的 Python 開(kāi)發(fā)人員,你的主要關(guān)注點(diǎn)是后端代碼。但是,前端代碼也很重要,因此你需要一些基本的 HTML、CSS 或 JavaScript 知識(shí)來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的界面。

另一種選擇是在前端和后端都使用 python。由于 Anvil 庫(kù)消除了對(duì) HTML、CSS 和 JavaScript 的需求,你可以只關(guān)注 Python 代碼。

你可以使用 python 通過(guò) Web 框架(如 django 和 flask)構(gòu)建 Web 應(yīng)用程序。使用 Python 構(gòu)建 Web 應(yīng)用程序的框架列表很長(zhǎng),你有很多選擇,但 django 和 flask 仍然是最流行的 Web 框架。

桌面圖形用戶(hù)界面

無(wú)論是臺(tái)式機(jī)還是筆記本電腦,每次你在電腦上執(zhí)行一項(xiàng)任務(wù),這個(gè)任務(wù)都是通過(guò)一個(gè)應(yīng)用程序完成的。作為一個(gè)中級(jí)的 Python 開(kāi)發(fā)人員,你可以創(chuàng)建自己的桌面應(yīng)用程序。

你不必學(xué)習(xí)任何前端技術(shù)來(lái)創(chuàng)建自己的圖形用戶(hù)界面(GUI)應(yīng)用程序,而是使用 Python 構(gòu)建所有部分。

有一些框架可以用于構(gòu)建桌面應(yīng)用程序,PySimpleGUI 就是其中之一,對(duì)于中級(jí) Python 開(kāi)發(fā)人員來(lái)說(shuō),它非常友好。

像 PyQt5 這樣的高級(jí)圖形用戶(hù)界面框架非常強(qiáng)大,但是它的學(xué)習(xí)曲線(xiàn)非常陡峭。

你為桌面 GUI 創(chuàng)建的軟件能夠在任何 Windows、Linux 或 Mac 操作系統(tǒng)上工作。創(chuàng)建項(xiàng)目之后,你所要做的就是將其編譯為可執(zhí)行文件,供你選擇的操作系統(tǒng)使用。

命令行

命令行應(yīng)用程序是在控制臺(tái)窗口中工作的應(yīng)用程序,它是 Windows 上的命令提示,以及 Linux 和 Mac 上的終端。

你可以單擊使用 Web 或 GUI 應(yīng)用程序,但可以為命令行應(yīng)用程序輸入命令。命令行應(yīng)用程序的用戶(hù)需要有一些技術(shù)知識(shí),因?yàn)樗麄冃枰褂妹睢?/p>

命令行應(yīng)用程序可能不如 Web 或 GUI 應(yīng)用程序漂亮或易于使用,但這并不會(huì)使它們不如 Web 或 GUI 應(yīng)用程序強(qiáng)大。

通過(guò)改變文本應(yīng)用的顏色可以改善命令行應(yīng)用程序的外觀。有一些庫(kù)可以用于著色,如 Colorma 和 Colored。

你可以使用諸如 docopt、argparse 和 click 等框架來(lái)構(gòu)建應(yīng)用程序。

Web 項(xiàng)目構(gòu)想

在本節(jié)中,你將看到 Web 項(xiàng)目的構(gòu)想。這些項(xiàng)目思想可以分為實(shí)用工具和理論工具。

以下是項(xiàng)目思路:

內(nèi)容聚合器
Regex 查詢(xún)工具
縮短網(wǎng)址
便利貼
測(cè)驗(yàn)申請(qǐng)

內(nèi)容聚合器

內(nèi)容是王道。從博客到社交媒體平臺(tái),它在網(wǎng)絡(luò)上無(wú)處不在。為了了解最新的內(nèi)容,你需要不斷地在互聯(lián)網(wǎng)上搜索新的信息。做到這一點(diǎn)的其中一種方法是手動(dòng)檢查所有站點(diǎn),以查看新發(fā)布的內(nèi)容。但這很費(fèi)時(shí),也很累。

這就是需要內(nèi)容聚合器的地方:內(nèi)容聚合器從不同的網(wǎng)站獲取信息,并將所有這些信息聚合在一起。因此,你不必訪(fǎng)問(wèn)多個(gè)網(wǎng)站來(lái)獲取最新信息:一個(gè)網(wǎng)站就足夠了。

使用內(nèi)容聚合器,可以從一個(gè)聚合所有內(nèi)容的站點(diǎn)獲取所有最新信息。人們可以看到他們感興趣的帖子,并且可以了解更多關(guān)于它們的信息。

內(nèi)容聚合器示例

下面是內(nèi)容聚合器思想的一些應(yīng)用:

AllTop
Hvper

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目理念的主要目標(biāo)是聚合內(nèi)容。首先,你需要明確你希望內(nèi)容聚合器從哪些網(wǎng)站獲取內(nèi)容。然后,你可以發(fā)送 HTTP 請(qǐng)求、使用 BeautifulSoup 等庫(kù)來(lái)解析和從站點(diǎn)中獲取必要的內(nèi)容。

應(yīng)用程序可以將其內(nèi)容聚合實(shí)現(xiàn)為后臺(tái)進(jìn)程。像 celery 或者 apscheduler 這樣的庫(kù)可以幫助解決這個(gè)問(wèn)題。你可以試用一下 apscheduler,它對(duì)于小后臺(tái)進(jìn)程來(lái)說(shuō)非常棒。

從不同的站點(diǎn)抓取內(nèi)容后,你需要將其保存到某個(gè)地方。所以,你需要使用一個(gè)數(shù)據(jù)庫(kù)來(lái)保存抓取的內(nèi)容。

額外的挑戰(zhàn)

如果你想要更嚴(yán)峻的挑戰(zhàn),那么你可以添加更多網(wǎng)站。這將幫助你學(xué)到如何從網(wǎng)站上學(xué)習(xí)和提取信息。

你還可以讓用戶(hù)訂閱你聚合的某些站點(diǎn)。然后,在一天結(jié)束時(shí),內(nèi)容聚合器會(huì)將當(dāng)天的文章發(fā)送到用戶(hù)的電子郵箱。

Regex 查詢(xún)工具

我們每天都處理短信。舉個(gè)例子,這篇文章也是文本,它有自己的結(jié)構(gòu)。有時(shí),你需要在文本中找到某些信息,在文本編輯器中使用常規(guī)搜索工具可能是無(wú)效的。

這就是 Regex 查詢(xún)工具的作用所在。Regex 是一組字符串,它會(huì)檢查查詢(xún)的有效性。當(dāng) Regex 匹配文本中的模式時(shí),它告訴用戶(hù)并突出顯示匹配的模式。因此,你的 Regex 查詢(xún)工具將檢查用戶(hù)傳入的 Regex 字符串的有效性。

使用 Regex 查詢(xún)工具,用戶(hù)可以在 Web 上快速檢查其 Regex 字符串的有效性。相比使用文本編輯器檢查字符串,這對(duì)用戶(hù)來(lái)說(shuō)更加容易。

Regex 查詢(xún)工具示例

以下是 Regex 查詢(xún)工具思想的一些實(shí)現(xiàn):

FreeFormatter
RegexTester

技術(shù)細(xì)節(jié)

這種類(lèi)型的項(xiàng)目的主要目標(biāo)是告訴用戶(hù)輸入的查詢(xún)字符串的有效性。你可以讓它給出正響應(yīng)或負(fù)響應(yīng),例如查詢(xún)字符串有效,查詢(xún)字符串無(wú)效,實(shí)現(xiàn)綠色的正響應(yīng)和紅色的負(fù)響應(yīng)。

你不必從頭開(kāi)始實(shí)現(xiàn)查詢(xún)工具,你可以使用 Python 的標(biāo)準(zhǔn) re 庫(kù),它可以用來(lái)對(duì)輸入的文本運(yùn)行查詢(xún)字符串。當(dāng)查詢(xún)字符串不匹配時(shí),re 庫(kù)將返回 none,當(dāng)查詢(xún)字符串匹配時(shí),它將返回匹配的字符串。

有些用戶(hù)可能無(wú)法完全理解 Regex,你可以制作一個(gè)頁(yè)面來(lái)解釋 Regex 的工作原理。你可以制作一些有趣的文檔,讓用戶(hù)喜歡上學(xué)習(xí)和理解 Regex。

額外的挑戰(zhàn)

制作一個(gè)只返回 Regex 有效性的項(xiàng)目是可以的,但你也可以添加替換功能。這意味著應(yīng)用程序?qū)z查 Regex 的有效性,并允許用戶(hù)用其他內(nèi)容替換匹配的字符串。因此,該工具不再是查找工具,而是替換工具。

縮短網(wǎng)址

URL 可能非常長(zhǎng),不便于用戶(hù)使用。當(dāng)人們共享鏈接,甚至試圖記住一個(gè) URL 時(shí),這是很困難的,因?yàn)榇蠖鄶?shù) URL 都充滿(mǎn)了困難的字符,而不是有意義的單詞。

這就是 URL 需要縮短器的地方。URL 縮短器減少了 URL 中的字符或字母,使它們更容易閱讀和記憶。像「xyz.com/wwryb78&svnhkn%sghq?sfiyh」這樣的網(wǎng)址可以縮短為「xyz.com/piojwr」。

有了 URL 縮短器,URL 就成了一種有趣的工作。

URL 縮短器示例

以下是 URL 縮短器思想的一些實(shí)現(xiàn):

Bitly
MeShort

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目思想的主要目標(biāo)是縮短 URL。應(yīng)用程序?qū)⒖s短 URL,然后在訪(fǎng)問(wèn)縮短的 URL 時(shí)將用戶(hù)重定向到原始 URL。

在應(yīng)用程序中,用戶(hù)將輸入原始的 URL,結(jié)果將得到新的、縮短的 URL。為此,你可以使用隨機(jī)和字符串模塊的組合來(lái)為縮短的 URL 生成字符。

由于用戶(hù)將在幾天、幾個(gè)月甚至幾年后訪(fǎng)問(wèn)縮短的 URL,因此需要將原始和縮短的 URL 保存在數(shù)據(jù)庫(kù)中。當(dāng)一個(gè)請(qǐng)求出現(xiàn)時(shí),應(yīng)用程序會(huì)檢查該 URL 是否存在并重定向到原始的 URL,否則它會(huì)重定向到 404 頁(yè)。

額外的挑戰(zhàn)

生成一個(gè)帶有隨機(jī)字符的縮短的 URL 比長(zhǎng)的隨機(jī) URL 更好。但是,你可以為用戶(hù)提供更好的結(jié)果。你可以添加一個(gè)自定義 URL 的功能,這樣用戶(hù)就可以自定義生成 URL。

毫無(wú)疑問(wèn),自定義的 xyz.com/mysite URL 比隨機(jī)生成的 xyz.com/piojwr URL 要好。

便利貼

人在一天之內(nèi)會(huì)有很多想法,但也很容易忘記。解決遺忘問(wèn)題的一個(gè)方法是在忘記之前把它們記下來(lái)。雖然一些被遺忘的想法可能是微不足道的,但有些想法可能相當(dāng)強(qiáng)大。

這就是便利貼的用武之地:便利貼是一種背面帶有低粘性粘合劑的小紙張,可以貼在文檔、墻壁等表面。貼便條使記東西更容易。這和便利貼項(xiàng)目的想法類(lèi)似。它是一個(gè) Web 應(yīng)用程序,因此可以允許用戶(hù)記下事情并在任何地方訪(fǎng)問(wèn)。

有了便利貼,人們現(xiàn)在可以在任何地方記下東西,而不用擔(dān)心忘記東西或把筆記放錯(cuò)地方,這是物理筆記的一種可能性。

便利貼示例

以下是便利貼思想的一些實(shí)現(xiàn):

Pinup
Note.ly

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目的主要目標(biāo)是讓用戶(hù)可以記下想法。這意味著每個(gè)用戶(hù)都有自己的注釋?zhuān)虼藨?yīng)用程序需要具有帳戶(hù)創(chuàng)建功能,這樣可以確保每個(gè)用戶(hù)的筆記私有。

Django 配備了一個(gè)用戶(hù)認(rèn)證系統(tǒng),因此它可能是一個(gè)不錯(cuò)的選擇。你也可以使用其他框架,如 bottle 或 flask,但你必須自己實(shí)現(xiàn)用戶(hù)身份驗(yàn)證系統(tǒng)。

由于用戶(hù)可能需要在不同的模塊下分離筆記,因此實(shí)現(xiàn)一個(gè)允許用戶(hù)對(duì)筆記進(jìn)行分類(lèi)的功能將使應(yīng)用程序更有用。

例如,你可能需要對(duì)算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行注釋?zhuān)虼四阈枰谶@些類(lèi)別中分離注釋。

你需要存儲(chǔ)每個(gè)用戶(hù)的信息和注釋?zhuān)虼藬?shù)據(jù)庫(kù)成為這個(gè)項(xiàng)目的重要部分。如果要使用 MySQL 數(shù)據(jù)庫(kù),那你需要使用 MySQLdb 模塊。如果要使用 PostgreSQL 數(shù)據(jù)庫(kù),那么可以使用 psycopg2 模塊。你可以使用其他模塊,但這一切都取決于你選擇使用的數(shù)據(jù)庫(kù)。

額外的挑戰(zhàn)

遺忘是人類(lèi)的共性,甚至在做了筆記時(shí)也是如此。你可以添加一個(gè)功能來(lái)提醒用戶(hù)。此功能允許用戶(hù)設(shè)置提醒時(shí)間,因此應(yīng)用程序?qū)⒃谔嵝褧r(shí)間時(shí)通過(guò)電子郵件向用戶(hù)發(fā)送提醒。

測(cè)驗(yàn)申請(qǐng)

知識(shí)就是力量。世界上有很多東西需要學(xué)習(xí),而測(cè)驗(yàn)有助于測(cè)試對(duì)這些概念的理解。作為一個(gè)中級(jí)別的 Python 開(kāi)發(fā)人員,你不必理解語(yǔ)言的所有內(nèi)容。參加考試是一種發(fā)現(xiàn)你知識(shí)漏洞的方法。

這里就需要小測(cè)驗(yàn)應(yīng)用程序了。測(cè)驗(yàn)應(yīng)用程序?qū)⑾蛴脩?hù)提出問(wèn)題,并期望這些問(wèn)題的正確答案。把測(cè)驗(yàn)申請(qǐng)看作是一種問(wèn)卷調(diào)查。

使用測(cè)驗(yàn)應(yīng)用程序,特殊用戶(hù)將可以創(chuàng)建測(cè)試,普通用戶(hù)可以回答問(wèn)題并測(cè)試他們對(duì)測(cè)試主題的理解。

測(cè)驗(yàn)應(yīng)用示例

以下是測(cè)驗(yàn)應(yīng)用程序理念的一些實(shí)現(xiàn):

myQuiz
Kahoot

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目的主要目標(biāo)是設(shè)置測(cè)驗(yàn)并讓人們回答。因此,用戶(hù)應(yīng)該能夠設(shè)置問(wèn)題,其他用戶(hù)應(yīng)該能夠回答這些問(wèn)題。之后,應(yīng)用程序?qū)⒐甲罱K分?jǐn)?shù)和正確答案。

如果你希望用戶(hù)能夠記錄他們的分?jǐn)?shù),你可能需要實(shí)現(xiàn)帳戶(hù)創(chuàng)建功能。

創(chuàng)建測(cè)試的用戶(hù)應(yīng)該能夠通過(guò)簡(jiǎn)單地上傳文本文件來(lái)創(chuàng)建包含問(wèn)題和答案的測(cè)試。文本文件的格式可以由用戶(hù)決定,因此應(yīng)用程序可以從文件轉(zhuǎn)換為測(cè)驗(yàn)。

你需要為這個(gè)項(xiàng)目實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)將存儲(chǔ)每個(gè)用戶(hù)的問(wèn)題、可能的答案、正確的答案和分?jǐn)?shù)。

額外的挑戰(zhàn)

如果需要更多的挑戰(zhàn),你可以允許用戶(hù)向測(cè)驗(yàn)添加計(jì)時(shí)器。這樣,測(cè)試的創(chuàng)建者就可以確定用戶(hù)應(yīng)該在測(cè)試中的每個(gè)問(wèn)題上花費(fèi)多少時(shí)間。

有一個(gè)測(cè)驗(yàn)分享功能是很好的,這樣用戶(hù)就可以在其他平臺(tái)上與朋友分享他們認(rèn)為有趣的測(cè)驗(yàn)。

圖形用戶(hù)界面項(xiàng)目理念

在本節(jié)中,你將看到圖形用戶(hù)界面的項(xiàng)目構(gòu)想。這些項(xiàng)目理念可以分為娛樂(lè)、金融和實(shí)用工具。

以下是項(xiàng)目構(gòu)想:

MP3 播放器
報(bào)警工具
文件管理器
費(fèi)用追蹤器
MP3 播放器

如今,音頻和文本一樣重要。因?yàn)橐纛l文件是數(shù)字文件,所以你需要一個(gè)可以播放它們的工具。如果沒(méi)有播放器,你將無(wú)法收聽(tīng)音頻文件的內(nèi)容。

這就是 MP3 播放器的用武之地。MP3 播放器是播放 MP3 和其他數(shù)字音頻文件的設(shè)備。這個(gè) MP3 播放器圖形用戶(hù)界面項(xiàng)目的想法試圖模擬物理 MP3 播放器。你可以構(gòu)建可以在臺(tái)式機(jī)或筆記本電腦上播放 MP3 文件的軟件。

完成 MP3 播放器項(xiàng)目的構(gòu)建后,用戶(hù)可以播放 MP3 文件和其他數(shù)字音頻文件,而無(wú)需購(gòu)買(mǎi)物理 MP3 播放器。他們可以用電腦播放 MP3 文件。

MP3 播放器示例

以下是 MP3 播放器想法的一些實(shí)現(xiàn):

MusicBee
Foobar2000

技術(shù)細(xì)節(jié)

該項(xiàng)目的主要目標(biāo)是允許用戶(hù)播放 MP3 和數(shù)字音頻文件。為了吸引用戶(hù),應(yīng)用程序必須有一個(gè)簡(jiǎn)單但漂亮的用戶(hù)界面。

可以有一個(gè)界面來(lái)列出可用的 MP3 文件,你還可以讓用戶(hù)選擇列出不是 MP3 的其他數(shù)字音頻文件。

用戶(hù)還希望 MP3 播放器有一個(gè)顯示正在播放的文件信息的界面,包括文件名、文件長(zhǎng)度、播放量和未播放量(以分鐘和秒為單位)。

Python 有一些可以播放音頻文件的庫(kù),例如 pygame,它讓你可以用幾行代碼來(lái)處理多媒體文件。你還可以查看 pymedia 和 simpleaudio。

這些庫(kù)可以處理許多數(shù)字音頻文件。它們可以處理其他類(lèi)型的文件,而不僅僅是 MP3。

你還可以實(shí)現(xiàn)允許用戶(hù)創(chuàng)建播放列表的功能。要做到這一點(diǎn),你需要一個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)創(chuàng)建的播放列表上的信息。Python 的 sqlite3 模塊允許你使用 SQLite 數(shù)據(jù)庫(kù)。

在這種情況下,SQLite 數(shù)據(jù)庫(kù)是一個(gè)更好的選擇,因?yàn)樗腔谖募,并且比其?SQL 數(shù)據(jù)庫(kù)更容易設(shè)置。雖然 SQLite 是基于文件的,但是保存數(shù)據(jù)比保存常規(guī)文件要好。

額外的挑戰(zhàn)

如果你想接受更大的挑戰(zhàn),你可以添加一個(gè)功能,允許 MP3 播放器重復(fù)當(dāng)前播放的文件,甚至可以隨機(jī)播文件列表中的文件。

還可以實(shí)現(xiàn)允許用戶(hù)提高和降低音頻文件播放速度的功能。用戶(hù)會(huì)發(fā)現(xiàn)這很有趣,因?yàn)樗麄兡軌蛞员绕綍r(shí)更慢或更快的速度播放文件。

報(bào)警工具

有一句諺語(yǔ)是,「時(shí)間和潮流不等人」,但我們的生活中發(fā)生這么多事情,很難不忘記時(shí)間。為了能夠跟蹤時(shí)間,我們需要一個(gè)提醒。

這就是報(bào)警工具的作用。警報(bào)是一種在特定條件下發(fā)出聲音或視覺(jué)信號(hào)的裝置。這個(gè)警報(bào)工具項(xiàng)目的想法是試圖建立一個(gè)軟件來(lái)發(fā)出警報(bào)。當(dāng)滿(mǎn)足一定條件時(shí),報(bào)警工具發(fā)出音頻信號(hào)。在這種情況下,一定的條件指的就是設(shè)定時(shí)間。

通過(guò)警報(bào)工具,用戶(hù)可以設(shè)置警報(bào),在一天中的某些時(shí)間提醒他們一些事情。警報(bào)工具項(xiàng)目將可以在用戶(hù)的筆記本電腦或桌面設(shè)備上工作,他們不必購(gòu)買(mǎi)物理計(jì)時(shí)器。

報(bào)警工具示例

以下是警報(bào)工具構(gòu)想的一些實(shí)現(xiàn):

FreeAlarmClock
TimerForMac

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目的主要目標(biāo)是在一天中的某些時(shí)間激活音頻信號(hào)。因此,定時(shí)和要播放的音頻信號(hào)是報(bào)警工具中最重要的部分。

報(bào)警工具應(yīng)允許用戶(hù)創(chuàng)建、編輯和刪除報(bào)警。它還應(yīng)該有一個(gè)界面,列出所有用戶(hù)沒(méi)有刪除的警報(bào)。因此,它應(yīng)該列出活動(dòng)和非活動(dòng)警報(bào)。

由于它是一個(gè)警報(bào),應(yīng)用程序必須在設(shè)置的時(shí)間播放音調(diào)。有播放音頻的庫(kù),比如 pygame 庫(kù)。

在代碼邏輯中,應(yīng)用程序必須不斷檢查設(shè)置的報(bào)警時(shí)間。到達(dá)時(shí)間后,它會(huì)觸發(fā)一個(gè)函數(shù)來(lái)播放警報(bào)音。

由于應(yīng)用程序?qū)z查設(shè)置的報(bào)警時(shí)間,這意味著應(yīng)用程序必須將報(bào)警保存在數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)應(yīng)該存儲(chǔ)報(bào)警日期、時(shí)間和音調(diào)位置等信息。

額外的挑戰(zhàn)

如果還需要額外的功能,你可以允許用戶(hù)設(shè)置重復(fù)報(bào)警。他們將能夠在一周中的某些天、每個(gè)星期的某個(gè)時(shí)間響起的警報(bào)。例如,可以在每周一下午 2:00 設(shè)置警報(bào)。

你還可以添加暫停功能,這樣你的用戶(hù)就可以暫停警報(bào),而不僅僅是解除警報(bào)。

文件管理器

一個(gè)普通的 PC 用戶(hù)在個(gè)人電腦上都有很多很多的文件。如果所有這些文件都放在一個(gè)目錄中,則很難查找文件或目錄。因此,有必要對(duì)文件進(jìn)行適當(dāng)?shù)陌才藕凸芾怼?/p>

這就是文件管理器出現(xiàn)的地方。文件管理器允許用戶(hù)通過(guò)用戶(hù)界面管理文件和目錄。雖然文件可以通過(guò)命令行進(jìn)行管理,但并非所有用戶(hù)都知道如何做到這一點(diǎn)。

使用文件管理器,用戶(hù)可以正確地安排、訪(fǎng)問(wèn)和管理其文件和目錄,而不需要知道如何使用命令行。文件管理器允許用戶(hù)執(zhí)行的某些任務(wù)包括復(fù)制、移動(dòng)和重命名文件或目錄。

文件管理器工具示例

FreeCommander
Explorer++

技術(shù)細(xì)節(jié)

文件管理器項(xiàng)目的主要目標(biāo)是為用戶(hù)提供一個(gè)界面來(lái)管理他們的文件。用戶(hù)需要一個(gè)文件管理器,它界面美觀且易用。

你可以使用 PySimpleGUI 庫(kù)創(chuàng)建獨(dú)特的用戶(hù)界面,這個(gè)庫(kù)可以讓你省去很多復(fù)雜的操作。

你的用戶(hù)應(yīng)該能夠執(zhí)行簡(jiǎn)單的任務(wù),如創(chuàng)建新目錄或空文本文件。他們還應(yīng)該能夠復(fù)制和移動(dòng)文件或目錄。

sys、os 和 shutil 庫(kù)對(duì)于這個(gè)項(xiàng)目非常有用,因?yàn)樗鼈兛梢杂糜谠谟脩?hù)單擊時(shí)在后臺(tái)對(duì)文件執(zhí)行操作。

網(wǎng)格視圖和列表視圖是當(dāng)今流行的視圖,你可以在應(yīng)用程序中實(shí)現(xiàn)這兩種視圖。之后用戶(hù)可以選擇適合他們的視圖選項(xiàng)。

額外的挑戰(zhàn)

要使文件管理器更高級(jí)一點(diǎn),可以實(shí)現(xiàn)搜索功能。這個(gè)功能讓用戶(hù)可以搜索文件和目錄,而不必手動(dòng)查找它們。

還可以實(shí)現(xiàn)排序功能。這將允許用戶(hù)根據(jù)不同的順序?qū)ξ募M(jìn)行排序,如時(shí)間、字母順序或大小。

費(fèi)用追蹤器

我們有日常費(fèi)用,從雜貨到衣服再到賬單。有這么多的開(kāi)支,我們通常會(huì)忘記它們,繼續(xù)花錢(qián),直到我們快沒(méi)錢(qián)了。追蹤器可以幫助人們觀察他們的支出。

這就是費(fèi)用追蹤器出現(xiàn)的地方。費(fèi)用追蹤器是一種軟件工具,允許用戶(hù)跟蹤他們的花費(fèi)。它還可以分析費(fèi)用,這取決于它的先進(jìn)程度,但現(xiàn)在讓我們先做最簡(jiǎn)單的。

通過(guò)費(fèi)用跟蹤,用戶(hù)可以設(shè)置預(yù)算并跟蹤他們的支出,從而做出更好的財(cái)務(wù)決策。

費(fèi)用追蹤器示例

以下是費(fèi)用跟蹤概念的一些實(shí)現(xiàn):

Buddi
GnuCash

技術(shù)細(xì)節(jié)

本項(xiàng)目的主要目標(biāo)是跟蹤用戶(hù)的開(kāi)支。必須進(jìn)行一些統(tǒng)計(jì)分析,以便向用戶(hù)提供有關(guān)其支出的正確信息,并幫助他們更好地支出。

雖然跟蹤費(fèi)用是關(guān)鍵,但良好的界面也很重要。使用 pysimplegui 可以創(chuàng)建一個(gè)獨(dú)特的界面來(lái)改善用戶(hù)的體驗(yàn)。

pandas 和 Matplotlib 等 Pydata 庫(kù)可以幫助構(gòu)建支出跟蹤程序。

pandas 可用于數(shù)據(jù)分析,Matplotlib 庫(kù)可用于繪制圖形。圖形將為用戶(hù)提供開(kāi)支的可視化表示,可視化表示通常更容易理解。

應(yīng)用程序?qū)⒔邮諄?lái)自用戶(hù)的數(shù)據(jù)。這里的數(shù)據(jù)是輸入的費(fèi)用。因此,你必須將支出存儲(chǔ)在數(shù)據(jù)庫(kù)中。對(duì)于這個(gè)項(xiàng)目來(lái)說(shuō),SQLite 數(shù)據(jù)庫(kù)是一個(gè)很好的選擇,因?yàn)樗梢赃M(jìn)行快速設(shè)置。你可以將 sqlite3 模塊用于 SQLite 數(shù)據(jù)庫(kù)。

額外的挑戰(zhàn)

為了讓你的用戶(hù)從這個(gè)項(xiàng)目中受益,他們必須定期輸入他們的開(kāi)支,但是他們可能會(huì)忘記這樣做。因此,實(shí)現(xiàn)提醒功能很有用。應(yīng)用程序可以在一天或一周的某些時(shí)間發(fā)送通知,提醒用戶(hù)使用費(fèi)用跟蹤程序。

命令行項(xiàng)目構(gòu)想

在本節(jié)中,你將看到命令行的項(xiàng)目理念。所討論的項(xiàng)目思想可以歸類(lèi)為實(shí)用工具。

以下是項(xiàng)目構(gòu)想:

聯(lián)系人簿
文件連接檢查器
批量文件重命名工具
目錄樹(shù)生成器

聯(lián)系人簿

我們每天都遇到很多人,結(jié)識(shí)很多新朋友。我們讓他們留下聯(lián)系方式以便以后保持聯(lián)系。遺憾的是,保管好收到的聯(lián)系信息可能很困難。一種方法是寫(xiě)下聯(lián)系人的詳細(xì)信息。但這并不安全,因?yàn)閷?shí)體筆記很容易丟失。

這就是通訊錄項(xiàng)目的切入點(diǎn)。聯(lián)系人簿是用于保存聯(lián)系人詳細(xì)信息(如姓名、地址、電話(huà)號(hào)碼和電子郵件地址)的工具。通過(guò)這個(gè)聯(lián)系人簿項(xiàng)目,你可以構(gòu)建一個(gè)軟件工具,人們可以使用它來(lái)保存和查找聯(lián)系人詳細(xì)信息。

有了聯(lián)系人簿項(xiàng)目,用戶(hù)可以保存他們的聯(lián)系人,同時(shí)減少丟失保存的聯(lián)系人詳細(xì)信息的風(fēng)險(xiǎn)。這個(gè)聯(lián)系人薄總是可以通過(guò)命令行從計(jì)算機(jī)訪(fǎng)問(wèn)。

通訊錄工具示例

雖然市面上有很多通訊錄應(yīng)用程序,但很少找到命令行通訊錄產(chǎn)品,大多數(shù)是 Web、移動(dòng)或 GUI 應(yīng)用程序。

以下是通訊錄構(gòu)想的一些實(shí)現(xiàn):

Simple Contacts
Pobuca Connect

技術(shù)細(xì)節(jié)

本項(xiàng)目的主要目標(biāo)是保存聯(lián)系人詳細(xì)信息。設(shè)置用戶(hù)可用于輸入聯(lián)系人詳細(xì)信息的命令很重要。你可以使用 argparse 或單擊命令行框架。它們抽象了很多復(fù)雜的東西,所以你只需要關(guān)注在執(zhí)行命令時(shí)要運(yùn)行的邏輯。

你應(yīng)該實(shí)現(xiàn)的一些功能包括刪除聯(lián)系人、更新聯(lián)系人信息和列出保存的聯(lián)系人的命令。你還可以允許用戶(hù)使用不同的參數(shù)(如字母順序或聯(lián)系人創(chuàng)建日期)進(jìn)行排序來(lái)列出聯(lián)系人。

因?yàn)樗且粋(gè)命令行項(xiàng)目,所以用 SQLite 數(shù)據(jù)庫(kù)保存聯(lián)系人是一個(gè)很好的選擇。SQLite 易于用戶(hù)設(shè)置。你可以將聯(lián)系人詳細(xì)信息保存在一個(gè)文件中,但這樣就沒(méi)有使用 SQLite 所能獲得的好處多,例如性能和安全性。

要在這個(gè)項(xiàng)目中使用 SQLite 數(shù)據(jù)庫(kù),Python sqlite3 模塊將非常有用。

額外的挑戰(zhàn)

還記得數(shù)據(jù)庫(kù)是如何存儲(chǔ)在用戶(hù)計(jì)算機(jī)上的嗎?如果發(fā)生了什么事情,比如用戶(hù)丟失了他們的文件怎么辦?這意味著他們也會(huì)失去聯(lián)系方式。

你可以進(jìn)一步挑戰(zhàn)自己,并將數(shù)據(jù)庫(kù)備份到在線(xiàn)存儲(chǔ)平臺(tái)。要做到這一點(diǎn),你可以每隔一定的時(shí)間將數(shù)據(jù)庫(kù)文件上傳到云端。

你還可以添加一個(gè)允許用戶(hù)自己備份數(shù)據(jù)庫(kù)的命令。這樣,如果數(shù)據(jù)庫(kù)文件丟失,用戶(hù)仍然可以訪(fǎng)問(wèn)聯(lián)系人。

應(yīng)該注意,你可能需要某種形式的標(biāo)識(shí),這樣聯(lián)系人簿就可以知道哪個(gè)數(shù)據(jù)庫(kù)文件屬于哪個(gè)用戶(hù)。實(shí)現(xiàn)用戶(hù)身份驗(yàn)證功能是實(shí)現(xiàn)它的一種方法。

站點(diǎn)連接檢查器

當(dāng)你訪(fǎng)問(wèn)一個(gè) URL 時(shí),你期望能看到請(qǐng)求的頁(yè)面。但情況并非總是如此。有時(shí)候,網(wǎng)站可能會(huì)關(guān)閉,所以你不會(huì)得到想要的結(jié)果。相反,你將收到錯(cuò)誤消息。你可以不斷地嘗試一個(gè)關(guān)閉的網(wǎng)站,直到你得到你需要的信息。

這是站點(diǎn)連接檢查器項(xiàng)目的切入點(diǎn)。站點(diǎn)連接檢查器訪(fǎng)問(wèn)一個(gè) URL 并返回該 URL 的狀態(tài):它是活動(dòng)的還是非活動(dòng)的。站點(diǎn)連接檢查器將每隔一段時(shí)間訪(fǎng)問(wèn) URL,并返回每次訪(fǎng)問(wèn)的結(jié)果。

站點(diǎn)連接檢查器不必手動(dòng)訪(fǎng)問(wèn) URL,而是可以為你完成所有這些手動(dòng)工作。這樣,你只會(huì)得到檢查結(jié)果,而不必花時(shí)間在瀏覽器上,等待站點(diǎn)上線(xiàn)。

站點(diǎn)連接檢查程序示例

以下是站點(diǎn)連接檢查器思想的一些實(shí)現(xiàn):

Ping
Site24x7

技術(shù)細(xì)節(jié)

本項(xiàng)目的主要目標(biāo)是檢查站點(diǎn)的狀態(tài)。因此,你需要編寫(xiě)代碼來(lái)檢查網(wǎng)站的狀態(tài)。

你可以選擇對(duì)連接使用 TCP 或 ICMP。socket 模塊是要檢查的模塊。你還可以閱讀 Python 中的 socket 編程指南。

通過(guò)選擇的框架(無(wú)論是 docopt、click 還是 argparse 框架),你可以添加命令以允許用戶(hù)從要檢查的站點(diǎn)列表中添加和刪除站點(diǎn)。

用戶(hù)還應(yīng)該能夠啟動(dòng)工具,停止它,并確定時(shí)間間隔。

由于必須保存要檢查的文件列表,因此可以將其保存到文件中(僅保存站點(diǎn)列表),也可以通過(guò) sqlite3 模塊使用 SQLite 數(shù)據(jù)庫(kù)。

額外的挑戰(zhàn)

應(yīng)用程序可以檢查站點(diǎn)的連接狀態(tài),并將結(jié)果顯示到命令行。但這將要求用戶(hù)繼續(xù)檢查命令行。

你可以增加挑戰(zhàn)并實(shí)現(xiàn)通知功能。通知功能可以是在后臺(tái)播放的聲音,用于在網(wǎng)站狀態(tài)更改時(shí)提醒用戶(hù)。你需要一個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)站點(diǎn)的以前狀態(tài),這是工具在狀態(tài)改變時(shí)唯一能辨別的方法。

批量文件重命名工具

有時(shí),你需要根據(jù)某些約定命名目錄中的所有文件。例如,你可以將目錄中的所有文件命名為 file0001.jpg,其數(shù)字根據(jù)目錄中的文件數(shù)增加。手動(dòng)操作可能會(huì)帶來(lái)壓力和重復(fù)性。

批量文件重命名工具允許用戶(hù)重命名大量文件,而無(wú)需手動(dòng)重命名文件。

這樣可以節(jié)省用戶(hù)很多時(shí)間。它省去了他們做無(wú)聊的重復(fù)工作和犯錯(cuò)誤的麻煩。使用批量文件重命名工具,用戶(hù)可以在幾秒鐘內(nèi)重命名文件,而不會(huì)出現(xiàn)任何錯(cuò)誤。

批量文件重命名工具示例

以下是批量文件重命名思想的一些實(shí)現(xiàn):

Ren
Rename

技術(shù)細(xì)節(jié)

這個(gè)項(xiàng)目的主要目標(biāo)是重命名文件。因此,應(yīng)用程序需要找到一種方法來(lái)操作目標(biāo)文件。the os、sys 和 shutil 庫(kù)在本項(xiàng)目的大部分地方都會(huì)用到。

用戶(hù)可以使用命名約定重命名目錄中的所有文件。因此,他們應(yīng)該能夠傳遞選擇的命名約定。如果您了解 Regex 的工作原理,Regex 模塊將幫助匹配所需的命名模式。

用戶(hù)可能希望將諸如 myfiles 之類(lèi)的命名約定作為命令的一部分傳遞,并希望該工具重命名所有文件,如 myfiles XYZ,其中 XYZ 是一個(gè)數(shù)字。他們還應(yīng)該能夠選擇要重命名文件的目錄。

額外的挑戰(zhàn)

這個(gè)項(xiàng)目的主要挑戰(zhàn)是重命名目錄中的所有文件。但是用戶(hù)可能只需要命名一定數(shù)量的文件。要測(cè)試你的技能,你可以實(shí)現(xiàn)一個(gè)功能允許用戶(hù)選擇要重命名的文件數(shù),而不是所有文件。

請(qǐng)注意,僅重命名一定數(shù)量的文件需要工具根據(jù)字母順序、文件創(chuàng)建時(shí)間或文件大小對(duì)文件進(jìn)行排序,具體取決于用戶(hù)的要求。

目錄樹(shù)生成器

目錄就像系列樹(shù):每個(gè)目錄都與其他目錄有特定的關(guān)系。除了一個(gè)空的根目錄之外,任何目錄都不能單獨(dú)存在。

當(dāng)你處理文件和目錄時(shí),很難看到目錄之間的關(guān)系,因?yàn)槟阒荒芸吹疆?dāng)前目錄中存在的內(nèi)容。你要么使用文件管理器,要么使用命令行。

使用目錄樹(shù)生成器,你可以像樹(shù)或映射一樣查看文件和目錄之間的關(guān)系。

這樣更容易理解文件和目錄的位置。當(dāng)你解釋某些概念時(shí),目錄樹(shù)映射很重要,目錄樹(shù)生成器使你更容易獲得文件和目錄關(guān)系的可視化表示。

目錄樹(shù)生成器示例

以下是目錄樹(shù)生成器思想的一些實(shí)現(xiàn):

Tree
Dirtreex

技術(shù)細(xì)節(jié)

目錄樹(shù)生成器的主要目標(biāo)是可視化文件和目錄之間的關(guān)系。OS 庫(kù)在列出所選目錄中的文件和目錄時(shí)非常有用。

使用 docopt 或 argparse 這樣的框架有助于抽象很多東西,使你能夠?qū)W⒂跒閼?yīng)用程序的邏輯編寫(xiě)代碼。

在應(yīng)用程序的邏輯中,你可以決定如何表示文件或目錄。使用不同的顏色是一種很好的方法?梢允褂 colored 庫(kù)以不同顏色打印文件和目錄。

你還可以決定目錄樹(shù)生成器的深度。例如,如果一個(gè)目錄有十二層的子目錄,那么你可能決定只進(jìn)行到第五層。

如果你愿意,還可以讓用戶(hù)決定目錄樹(shù)生成器的深度。

額外的挑戰(zhàn)

因?yàn)樯傻哪夸洏?shù)的結(jié)果將在命令行上,所以你可以更進(jìn)一步。你可以讓生成器創(chuàng)建目錄樹(shù)的圖像,因此它基本上將文本轉(zhuǎn)換為圖像。

你會(huì)發(fā)現(xiàn) pillow 庫(kù)很有用。

項(xiàng)目工作建議

從事項(xiàng)目可能很困難,但是,項(xiàng)目的動(dòng)機(jī)和興趣會(huì)使它不那么令人生畏。

如果你對(duì)一個(gè)項(xiàng)目感興趣,你將能夠投入時(shí)間去研究,并找到能幫助你完成這個(gè)項(xiàng)目的庫(kù)和工具。

以下是一些建議:

找到激勵(lì)的源泉
將項(xiàng)目分解為子任務(wù)
研究子任務(wù)
構(gòu)建每個(gè)子任務(wù),一次一步
如果你被困住了,請(qǐng)尋求幫助
將子任務(wù)放在一起

結(jié)論

在本文中,你已經(jīng)看到了一些你可能會(huì)感興趣的 Python 項(xiàng)目構(gòu)想。

項(xiàng)目理念涵蓋了一系列平臺(tái),你看到了 Web、GUI 和命令行平臺(tái)的項(xiàng)目思想。

你可以選擇在不同的平臺(tái)上構(gòu)建項(xiàng)目。以 URL 縮短器為例,你可以選擇在 Web、GUI 或命令行上構(gòu)建它。

由于你是一個(gè)中級(jí)的 Python 開(kāi)發(fā)人員,這些項(xiàng)目可能非常具有挑戰(zhàn)性,但也很有趣。

使一個(gè)項(xiàng)目成功的最好方法就是開(kāi)始行動(dòng)。當(dāng)你完成項(xiàng)目,你會(huì)發(fā)現(xiàn)自己從中受益匪淺!

via:https://realpython.com/intermediate-python-project-ideas/

標(biāo)簽: Python 數(shù)據(jù)處理

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:21個(gè)必知的機(jī)器學(xué)習(xí)開(kāi)源工具,涵蓋5大領(lǐng)域

下一篇:騰訊發(fā)布開(kāi)源機(jī)器學(xué)習(xí)平臺(tái) Angel 3.0