日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

實踐是最好的老師:給中級 Python 開發(fā)人員的 13 個項目構想

本文作者: skura 2019-08-30 19:04
導語:使一個項目成功的最好方法就是開始行動

實踐是最好的老師:給中級 Python 開發(fā)人員的 13 個項目構想

雷鋒網(wǎng) AI 開發(fā)者按,學習 python 的基礎知識是一種美妙的體驗。但是,學習的喜悅可以被對實踐項目的渴望所取代。想要建立項目是正常的,因此需要對項目的構想。

但問題是,有些項目對于中級的 python 開發(fā)人員來說過于簡單,或者過于困難。為此,工程師 Habeeb Shopeju 寫了一篇文章,文中給出了適合中級 Python 開發(fā)人員 13 個項目構想,或許會對你有所幫助。

目錄

構建項目的重要性

選擇項目平臺

  • 網(wǎng)頁

  • 桌面圖形用戶界面

  • 命令行

Web 項目想法

  • 內(nèi)容聚合器

  • Regex 查詢工具

  • 縮短網(wǎng)址

  • 便利貼

  • 測驗申請

圖形用戶界面項目理念

  • MP3 播放器

  • 報警工具

  • 文件管理器

  • 費用追蹤器

命令行項目思想

  • 聯(lián)系人簿

  • 站點連接檢查器

  • 批量文件重命名工具

  • 目錄樹生成器

項目工作建議

結(jié)論

在本文中,你將了解到:

  • 構建項目的重要性

  • 你可以構建項目的主要平臺

  • 13 個你可以使用的項目構想

  • 關于項目工作的一些小建議

構建項目的重要性

項目工作對于推動你作為 Python 開發(fā)人員的職業(yè)生涯來說至關重要,它讓你有機會運用你所獲得的技能和知識。

項目可以幫助你:

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

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

  • 更好地理解編程概念:你將學習更好地編寫代碼,并了解設計模式和面向?qū)ο缶幊痰雀拍睢?br/>

  • 體驗一個完整的軟件開發(fā)生命周期:在編寫代碼、管理編碼過程和更新軟件之前,你將學會如何計劃。

作為一個 Python 開發(fā)人員,從構建項目中可以獲得很多好處。

選擇項目平臺

你需要構建在平臺上運行的軟件,以便缺乏特定技術知識的人可以使用你的軟件。Web、桌面和命令行是可以構建項目的三個主要平臺。

Web

Web 應用程序是在 Web 上運行的應用程序,只要可以訪問 Internet,就可以在任何設備上訪問它們,而無需下載。如果你希望所有具有 Internet 訪問權限的人都能訪問你的項目,那么這個項目必須是一個 Web 應用程序。

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

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

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

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

桌面圖形用戶界面

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

你不必學習任何前端技術來創(chuàng)建自己的圖形用戶界面(GUI)應用程序,而是使用 Python 構建所有部分。

有一些框架可以用于構建桌面應用程序,PySimpleGUI 就是其中之一,對于中級 Python 開發(fā)人員來說,它非常友好。

像 PyQt5 這樣的高級圖形用戶界面框架非常強大,但是它的學習曲線非常陡峭。

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

命令行

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

你可以單擊使用 Web 或 GUI 應用程序,但可以為命令行應用程序輸入命令。命令行應用程序的用戶需要有一些技術知識,因為他們需要使用命令。

命令行應用程序可能不如 Web 或 GUI 應用程序漂亮或易于使用,但這并不會使它們不如 Web 或 GUI 應用程序強大。

通過改變文本應用的顏色可以改善命令行應用程序的外觀。有一些庫可以用于著色,如 Colorma 和 Colored。

你可以使用諸如 docopt、argparse 和 click 等框架來構建應用程序。

Web 項目構想

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

以下是項目思路:

  • 內(nèi)容聚合器

  • Regex 查詢工具

  • 縮短網(wǎng)址

  • 便利貼

  • 測驗申請

內(nèi)容聚合器

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

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

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

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

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

技術細節(jié)

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

應用程序可以將其內(nèi)容聚合實現(xiàn)為后臺進程。像 celery 或者 apscheduler 這樣的庫可以幫助解決這個問題。你可以試用一下 apscheduler,它對于小后臺進程來說非常棒。

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

額外的挑戰(zhàn)

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

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

Regex 查詢工具

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

這就是 Regex 查詢工具的作用所在。Regex 是一組字符串,它會檢查查詢的有效性。當 Regex 匹配文本中的模式時,它告訴用戶并突出顯示匹配的模式。因此,你的 Regex 查詢工具將檢查用戶傳入的 Regex 字符串的有效性。

使用 Regex 查詢工具,用戶可以在 Web 上快速檢查其 Regex 字符串的有效性。相比使用文本編輯器檢查字符串,這對用戶來說更加容易。

Regex 查詢工具示例

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

技術細節(jié)

這種類型的項目的主要目標是告訴用戶輸入的查詢字符串的有效性。你可以讓它給出正響應或負響應,例如查詢字符串有效,查詢字符串無效,實現(xiàn)綠色的正響應和紅色的負響應。

你不必從頭開始實現(xiàn)查詢工具,你可以使用 Python 的標準 re 庫,它可以用來對輸入的文本運行查詢字符串。當查詢字符串不匹配時,re 庫將返回 none,當查詢字符串匹配時,它將返回匹配的字符串。

有些用戶可能無法完全理解 Regex,你可以制作一個頁面來解釋 Regex 的工作原理。你可以制作一些有趣的文檔,讓用戶喜歡上學習和理解 Regex。

額外的挑戰(zhàn)

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

縮短網(wǎng)址

URL 可能非常長,不便于用戶使用。當人們共享鏈接,甚至試圖記住一個 URL 時,這是很困難的,因為大多數(shù) URL 都充滿了困難的字符,而不是有意義的單詞。

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

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

URL 縮短器示例

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

技術細節(jié)

這個項目思想的主要目標是縮短 URL。應用程序?qū)⒖s短 URL,然后在訪問縮短的 URL 時將用戶重定向到原始 URL。

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

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

額外的挑戰(zhàn)

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

毫無疑問,自定義的 xyz.com/mysite URL 比隨機生成的 xyz.com/piojwr URL 要好。

便利貼

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

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

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

便利貼示例

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

技術細節(jié)

這個項目的主要目標是讓用戶可以記下想法。這意味著每個用戶都有自己的注釋,因此應用程序需要具有帳戶創(chuàng)建功能,這樣可以確保每個用戶的筆記私有。

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

由于用戶可能需要在不同的模塊下分離筆記,因此實現(xiàn)一個允許用戶對筆記進行分類的功能將使應用程序更有用。

例如,你可能需要對算法和數(shù)據(jù)結(jié)構進行注釋,因此你需要在這些類別中分離注釋。

你需要存儲每個用戶的信息和注釋,因此數(shù)據(jù)庫成為這個項目的重要部分。如果要使用 MySQL 數(shù)據(jù)庫,那你需要使用 MySQLdb 模塊。如果要使用 PostgreSQL 數(shù)據(jù)庫,那么可以使用 psycopg2 模塊。你可以使用其他模塊,但這一切都取決于你選擇使用的數(shù)據(jù)庫。

額外的挑戰(zhàn)

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

測驗申請

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

這里就需要小測驗應用程序了。測驗應用程序?qū)⑾蛴脩籼岢鰡栴},并期望這些問題的正確答案。把測驗申請看作是一種問卷調(diào)查。

使用測驗應用程序,特殊用戶將可以創(chuàng)建測試,普通用戶可以回答問題并測試他們對測試主題的理解。

測驗應用示例

以下是測驗應用程序理念的一些實現(xiàn):

技術細節(jié)

這個項目的主要目標是設置測驗并讓人們回答。因此,用戶應該能夠設置問題,其他用戶應該能夠回答這些問題。之后,應用程序?qū)⒐甲罱K分數(shù)和正確答案。

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

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

你需要為這個項目實現(xiàn)一個數(shù)據(jù)庫。數(shù)據(jù)庫將存儲每個用戶的問題、可能的答案、正確的答案和分數(shù)。

額外的挑戰(zhàn)

如果需要更多的挑戰(zhàn),你可以允許用戶向測驗添加計時器。這樣,測試的創(chuàng)建者就可以確定用戶應該在測試中的每個問題上花費多少時間。

有一個測驗分享功能是很好的,這樣用戶就可以在其他平臺上與朋友分享他們認為有趣的測驗。

圖形用戶界面項目理念

在本節(jié)中,你將看到圖形用戶界面的項目構想。這些項目理念可以分為娛樂、金融和實用工具。

以下是項目構想:

  • MP3 播放器

  • 報警工具

  • 文件管理器

  • 費用追蹤器

MP3 播放器

如今,音頻和文本一樣重要。因為音頻文件是數(shù)字文件,所以你需要一個可以播放它們的工具。如果沒有播放器,你將無法收聽音頻文件的內(nèi)容。

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

完成 MP3 播放器項目的構建后,用戶可以播放 MP3 文件和其他數(shù)字音頻文件,而無需購買物理 MP3 播放器。他們可以用電腦播放 MP3 文件。

MP3 播放器示例

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

技術細節(jié)

該項目的主要目標是允許用戶播放 MP3 和數(shù)字音頻文件。為了吸引用戶,應用程序必須有一個簡單但漂亮的用戶界面。

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

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

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

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

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

在這種情況下,SQLite 數(shù)據(jù)庫是一個更好的選擇,因為它是基于文件的,并且比其他 SQL 數(shù)據(jù)庫更容易設置。雖然 SQLite 是基于文件的,但是保存數(shù)據(jù)比保存常規(guī)文件要好。

額外的挑戰(zhàn)

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

還可以實現(xiàn)允許用戶提高和降低音頻文件播放速度的功能。用戶會發(fā)現(xiàn)這很有趣,因為他們能夠以比平時更慢或更快的速度播放文件。

報警工具

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

這就是報警工具的作用。警報是一種在特定條件下發(fā)出聲音或視覺信號的裝置。這個警報工具項目的想法是試圖建立一個軟件來發(fā)出警報。當滿足一定條件時,報警工具發(fā)出音頻信號。在這種情況下,一定的條件指的就是設定時間。

通過警報工具,用戶可以設置警報,在一天中的某些時間提醒他們一些事情。警報工具項目將可以在用戶的筆記本電腦或桌面設備上工作,他們不必購買物理計時器。

報警工具示例

以下是警報工具構想的一些實現(xiàn):

技術細節(jié)

這個項目的主要目標是在一天中的某些時間激活音頻信號。因此,定時和要播放的音頻信號是報警工具中最重要的部分。

報警工具應允許用戶創(chuàng)建、編輯和刪除報警。它還應該有一個界面,列出所有用戶沒有刪除的警報。因此,它應該列出活動和非活動警報。

由于它是一個警報,應用程序必須在設置的時間播放音調(diào)。有播放音頻的庫,比如 pygame 庫。

在代碼邏輯中,應用程序必須不斷檢查設置的報警時間。到達時間后,它會觸發(fā)一個函數(shù)來播放警報音。
由于應用程序?qū)z查設置的報警時間,這意味著應用程序必須將報警保存在數(shù)據(jù)庫中。數(shù)據(jù)庫應該存儲報警日期、時間和音調(diào)位置等信息。

額外的挑戰(zhàn)

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

你還可以添加暫停功能,這樣你的用戶就可以暫停警報,而不僅僅是解除警報。

文件管理器

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

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

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

文件管理器工具示例

技術細節(jié)

文件管理器項目的主要目標是為用戶提供一個界面來管理他們的文件。用戶需要一個文件管理器,它界面美觀且易用。

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

你的用戶應該能夠執(zhí)行簡單的任務,如創(chuàng)建新目錄或空文本文件。他們還應該能夠復制和移動文件或目錄。

sys、os 和 shutil 庫對于這個項目非常有用,因為它們可以用于在用戶單擊時在后臺對文件執(zhí)行操作。

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

額外的挑戰(zhàn)

要使文件管理器更高級一點,可以實現(xiàn)搜索功能。這個功能讓用戶可以搜索文件和目錄,而不必手動查找它們。

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

費用追蹤器

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

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

通過費用跟蹤,用戶可以設置預算并跟蹤他們的支出,從而做出更好的財務決策。

費用追蹤器示例

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

技術細節(jié)

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

雖然跟蹤費用是關鍵,但良好的界面也很重要。使用 pysimplegui 可以創(chuàng)建一個獨特的界面來改善用戶的體驗。

pandas 和 Matplotlib 等 Pydata 庫可以幫助構建支出跟蹤程序。

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

應用程序?qū)⒔邮諄碜杂脩舻臄?shù)據(jù)。這里的數(shù)據(jù)是輸入的費用。因此,你必須將支出存儲在數(shù)據(jù)庫中。對于這個項目來說,SQLite 數(shù)據(jù)庫是一個很好的選擇,因為它可以進行快速設置。你可以將 sqlite3 模塊用于 SQLite 數(shù)據(jù)庫。

額外的挑戰(zhàn)

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

命令行項目構想

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

以下是項目構想:

  • 聯(lián)系人簿

  • 文件連接檢查器

  • 批量文件重命名工具

  • 目錄樹生成器

聯(lián)系人簿

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

這就是通訊錄項目的切入點。聯(lián)系人簿是用于保存聯(lián)系人詳細信息(如姓名、地址、電話號碼和電子郵件地址)的工具。通過這個聯(lián)系人簿項目,你可以構建一個軟件工具,人們可以使用它來保存和查找聯(lián)系人詳細信息。

有了聯(lián)系人簿項目,用戶可以保存他們的聯(lián)系人,同時減少丟失保存的聯(lián)系人詳細信息的風險。這個聯(lián)系人薄總是可以通過命令行從計算機訪問。

通訊錄工具示例

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

以下是通訊錄構想的一些實現(xiàn):

技術細節(jié)

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

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

因為它是一個命令行項目,所以用 SQLite 數(shù)據(jù)庫保存聯(lián)系人是一個很好的選擇。SQLite 易于用戶設置。你可以將聯(lián)系人詳細信息保存在一個文件中,但這樣就沒有使用 SQLite 所能獲得的好處多,例如性能和安全性。

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

額外的挑戰(zhàn)

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

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

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

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

站點連接檢查器

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

這是站點連接檢查器項目的切入點。站點連接檢查器訪問一個 URL 并返回該 URL 的狀態(tài):它是活動的還是非活動的。站點連接檢查器將每隔一段時間訪問 URL,并返回每次訪問的結(jié)果。

站點連接檢查器不必手動訪問 URL,而是可以為你完成所有這些手動工作。這樣,你只會得到檢查結(jié)果,而不必花時間在瀏覽器上,等待站點上線。

站點連接檢查程序示例

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

技術細節(jié)

本項目的主要目標是檢查站點的狀態(tài)。因此,你需要編寫代碼來檢查網(wǎng)站的狀態(tài)。

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

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

用戶還應該能夠啟動工具,停止它,并確定時間間隔。

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

額外的挑戰(zhàn)

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

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

批量文件重命名工具

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

批量文件重命名工具允許用戶重命名大量文件,而無需手動重命名文件。

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

批量文件重命名工具示例

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

技術細節(jié)

這個項目的主要目標是重命名文件。因此,應用程序需要找到一種方法來操作目標文件。the os、sys 和 shutil 庫在本項目的大部分地方都會用到。

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

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

額外的挑戰(zhàn)

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

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

目錄樹生成器

目錄就像系列樹:每個目錄都與其他目錄有特定的關系。除了一個空的根目錄之外,任何目錄都不能單獨存在。

當你處理文件和目錄時,很難看到目錄之間的關系,因為你只能看到當前目錄中存在的內(nèi)容。你要么使用文件管理器,要么使用命令行。

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

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

目錄樹生成器示例

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

技術細節(jié)

目錄樹生成器的主要目標是可視化文件和目錄之間的關系。OS 庫在列出所選目錄中的文件和目錄時非常有用。

使用 docopt 或 argparse 這樣的框架有助于抽象很多東西,使你能夠?qū)W⒂跒閼贸绦虻倪壿嬀帉懘a。

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

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

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

額外的挑戰(zhàn)

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

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

項目工作建議

從事項目可能很困難,但是,項目的動機和興趣會使它不那么令人生畏。

如果你對一個項目感興趣,你將能夠投入時間去研究,并找到能幫助你完成這個項目的庫和工具。

以下是一些建議:

  • 找到激勵的源泉

  • 將項目分解為子任務

  • 研究子任務

  • 構建每個子任務,一次一步

  • 如果你被困住了,請尋求幫助

  • 將子任務放在一起

結(jié)論

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

項目理念涵蓋了一系列平臺,你看到了 Web、GUI 和命令行平臺的項目思想。

你可以選擇在不同的平臺上構建項目。以 URL 縮短器為例,你可以選擇在 Web、GUI 或命令行上構建它。

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

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

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

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)版權文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

實踐是最好的老師:給中級 Python 開發(fā)人員的 13 個項目構想

分享:
相關文章
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說