對於中級程式設計師來說,有哪些好的 Python 專案?
在本文中,我們將學習一些適合中級程式設計師的 Python 專案。
這些專案既不太難也不太簡單。在開發這些專案時會遇到一些挑戰,並且您將樂在其中地解決它們。我們將這些專案分為三類:
Web 應用 - 通常,開發人員負責應用程式的前端和後端元件。作為 Python 開發人員,您的主要關注點將放在後端,所有業務邏輯都在這裡實現。可以使用一些 Python Web 框架,例如 Django 和 Flask。
桌面 GUI - Python 可用於建立您自己的桌面圖形使用者介面應用程式。PySimpleGUI 是一個使用者友好的桌面應用程式框架。PyQt5 是另一個複雜且高階的 GUI 框架,儘管它具有陡峭的學習曲線。
命令列 - 這些應用程式在控制檯視窗中執行。您可以使用 docopt、argparse 和 click 框架建立應用程式。
Web 專案創意
您將在此主題上找到 Web 專案創意。這些專案創意分為兩類:實用工具和教育工具。
以下是一些專案創意:
- URL 縮短工具
- 測驗應用程式
- Pin Your Note(固定筆記)
URL 縮短工具
您是否熟悉 bit.ly 和 TinyURL 等工具?這些服務縮短 URL 並使其更容易記憶。長 URL 包含難以記憶的複雜字元。這些服務透過刪除字元或字母來縮短 URL,並向用戶返回一個新的較短的 URL。
技術細節
此程式的主要目的是縮短 URL,當用戶點選縮短後的 URL 時,應將其傳送到原始 URL。您可以混合使用隨機數和字串模組來生成縮短 URL 的字元。
您必須將原始 URL 和縮短後的 URL 儲存在資料庫中,以便當使用者訪問縮短後的 URL(幾天、幾個月甚至幾年後)時,程式檢查資料庫,如果 URL 存在則重定向到原始 URL,否則重定向到 404 頁面。
額外挑戰
您可以透過為使用者提供自定義 URL 選項來提高此應用程式的可用性。使用者更容易記住他們建立的自定義 URL。
現實生活中的例子
測驗應用程式
測驗應用程式將向用戶提問並期望他們提供正確答案。可以將測驗應用程式視為一種問卷調查。特殊的使用者(稱為管理員)將能夠使用測驗應用程式建立測驗,允許普通使用者回答問題並評估他們對測驗中概念的理解。
技術細節
此專案的首要目標是建立測驗並讓人們回答它們。因此,使用者應該能夠提出問題,其他使用者應該能夠回答這些問題。然後,應用程式將提供總分以及正確答案。如果您希望使用者能夠跟蹤他們的分數,則可能需要構建一個帳戶建立功能。使用者應該能夠簡單地透過上傳文字檔案來構建包含問題和答案的測驗。文字檔案將採用您指定的格式,允許應用程式將其從檔案轉換為測驗。
額外挑戰
允許使用者為測驗設定計時器以增加難度。這允許測驗開發者決定使用者在測驗中的每個問題上應該花費多少秒或分鐘。
最好也提供一個測驗分享工具,以便使用者可以在其他平臺上與朋友分享有趣的測驗。
現實生活中的例子
Pin Your Note(固定筆記)
我們每天都有很多想法,而且由於繁忙的日程安排或其他原因,人們很容易忘記事情(甚至重要的想法或想法)。設計一個應用程式,線上記錄我們的想法以便輕鬆記住它們,這不是一個好主意嗎?您可以使用 Python 建立一個 Pin Your Note 應用程式,使用者可以在其中列出他們想要記住的任何內容,並且可以從任何地方訪問該列表(因為它位於數字平臺上)。
技術細節
此專案的主要目標是允許使用者儲存他們的想法。每個使用者都將擁有自己的私人筆記,並且為了建立私人筆記,必須建立具有身份驗證功能的帳戶建立功能。您可以使用 Django 框架,其中包含身份驗證系統,但如果您使用 bottle 或 flask,則必須自己實現使用者身份驗證。
您還可以包含一個允許使用者對筆記進行分類的功能。使用者可以透過這種方式將筆記分成多個類別。例如,使用者可以選擇一個部分用於程式語言,另一個用於資料結構和演算法,另一個用於資料庫。
如果您想使用資料庫來儲存此應用程式的資訊,則如果使用 MySQL 資料庫,可以使用 MySQLdb 模組;如果選擇 PostgreSQL 資料庫,則可以使用 psycopg2 模組。還可以使用其他模組,但這取決於您為應用程式選擇的資料庫。
額外挑戰
我們經常忘記我們在某個地方建立了關鍵筆記,然後期望有人提醒我們這些筆記。因此,您可以在此應用程式中包含一個提醒功能。此功能允許使用者選擇提醒時間並接收有關筆記的電子郵件通知。
現實生活中的例子
GUI 專案
以下是專案創意:
- MP3 播放器
- 鬧鐘工具
- 檔案管理器
- 支出跟蹤器
MP3 播放器
如果沒有播放器,則無法播放音訊檔案的內容。音訊檔案是數字資料,您可以透過在 Python 中建立 MP3 播放器工具來展示您的能力。您必須建立模擬物理 MP3 播放器的 MP3 播放器軟體。使用者可以使用此軟體在他們的桌面、筆記型電腦或計算機上播放 MP3 檔案。
技術細節
目標是提供允許使用者收聽 MP3 和其他數字音訊檔案的 MP3 軟體。您必須專注於建立視覺上吸引人的使用者介面以提高使用者參與度。介面將顯示可訪問的 MP3 檔案列表。使用者還可以選擇不是 MP3 的其他數字音訊檔案。使用者還應該能夠檢視正在播放的檔案的資訊。您可以包含以下資訊:
- 檔名
- 長度
- 已播放時間(分鐘和秒)
- 未播放時間(分鐘和秒)
Python 的 pygame、pymedia 和 simpleaudio 庫可用於處理 MP3 檔案和其他數字音訊檔案。您只需幾行程式碼即可操作多媒體檔案。您還可以包含一個允許使用者建立播放列表的功能。SQLite 資料庫的 sqlite3 模組可用於儲存建立的播放列表的資訊。
額外挑戰
包含一個允許使用者重複當前正在播放的檔案或隨機播放檔案列表的功能。您還可以新增一個允許使用者選擇音訊檔案播放速度(增加/減少)的功能。
現實生活中的例子
鬧鐘工具
俗話說,“歲月不饒人”。但是,隨著生活中發生的事情越來越多,很難跟蹤時間。需要一個提醒來跟蹤時間。
這就是鬧鐘工具發揮作用的地方。鬧鐘是一種在響應特定情況時發出聲音或視覺訊號的裝置。此鬧鐘工具專案概念旨在將鬧鐘作為軟體建立。鬧鐘工具在滿足給定條件時發出聲音訊號。在這種情況下,固定時間是一個特定條件。
使用者可以使用鬧鐘工具設定鬧鐘,以提醒他們在一天中的特定時間做某事。
鬧鐘工具專案將在使用者的筆記型電腦或桌上型電腦裝置上執行,無需購買物理計時器。
技術細節
此專案的主要目標是在一天中的特定時間啟用音訊訊號。因此,鬧鐘工具最重要的方面是計時和要播放的音訊訊號。
使用者應該能夠使用鬧鐘工具新增、編輯和刪除鬧鐘。它還應該包含一個使用者介面,其中列出所有尚未被使用者刪除的鬧鐘。因此,它應該顯示活動和非活動鬧鐘。
因為它是鬧鐘,所以程式必須在指定時間播放音調。有一些可用的音訊庫,例如 **pygame** 庫。
在您的程式碼邏輯中,程式必須繼續檢查設定的鬧鐘時間。當時間到達時,會觸發一個函式來播放鬧鐘音調。
由於應用程式將檢查設定的鬧鐘時間,因此它必須將鬧鐘儲存到資料庫中。所有鬧鐘日期、時間和音調位置都應儲存在資料庫中。
額外挑戰
您還可以允許使用者設定重複鬧鐘作為額外功能。他們將能夠在每週的特定日期的特定時間安排鬧鐘。例如,每週一下午 2:00 設定鬧鐘。
您還可以包含一個貪睡選項,以便您的使用者可以貪睡鬧鐘,而不僅僅是將其關閉。
現實生活中的例子
命令列專案
本節包含命令列專案的創意。提到的專案創意可以歸類為實用工具。
以下是一些專案創意:
- 網站連線檢查器
- 檔案重新命名工具
- 通訊錄
- 目錄樹生成器
網站連線檢查器
當您訪問某個 URL 時,您希望瀏覽器顯示請求的頁面。但是,情況並非總是如此。網站隨時可能宕機,因此您可能無法獲得預期結果。相反,您會看到錯誤訊息。您可以不斷嘗試訪問已宕機的網站,直到它恢復正常並獲得您需要的資訊。
這就是“專案網站連線檢查器”發揮作用的地方。網站連線檢查器訪問某個 URL 並提供該 URL 的狀態:線上或離線。網站連線檢查器將定期返回每次訪問 URL 的結果。
與其手動訪問 URL,網站連線檢查器可以為您處理所有操作。您只需獲得檢查結果,而無需在瀏覽器中花費時間等待網站載入。
技術細節
該專案的首要目標是檢查網站的狀態。因此,您必須建立程式碼來檢查網站的狀態。
您可以選擇使用 TCP 或 ICMP 進行連線。socket 模組是其中一個可以檢查的模組。或者,您可以閱讀 Python 中的套接字程式設計(指南)。
您可以新增命令,允許使用者使用您喜歡的框架(無論是 docopt、click 還是 argparse 框架)新增和刪除要檢查的網站列表中的網站。
使用者還應該能夠啟動和停止工具並設定間隔時間。
由於您需要記錄要檢查的檔案列表,您可以將其儲存在檔案中(只是一個網站列表)或使用 sqlite3 模組使用 SQLite 資料庫。
現實生活中的例子
檔案重新命名工具
我們必須根據特定約定頻繁重新命名目錄中的檔案。例如,File001.jpg、File002.jpg、File003.jpg 等。手動執行此操作可能很繁瑣且耗時。為了避免手動執行此操作,您可以編寫一個工具來重新命名大量檔案。
技術細節
主要目標是設計一個工具,可以在幾秒鐘內無錯誤地重新命名檔案。您可以使用 Python 的 os、sys 和 shutil 模組來重新命名目標檔案。使用者應該能夠使用他們喜歡的命名約定來重新命名目錄中的所有檔案。如果您瞭解正則表示式的使用方法,則可以使用它來幫助匹配所需的名稱模式。如果使用者在命令中指定了一個命名約定(例如 **demofiles**),則該工具應將檔案重新命名為 **demofiles345**,其中 345 是一個數字。
額外挑戰
實現一個功能,允許使用者僅選擇一組檔案進行重新命名,而不是所有檔案。根據使用者的偏好,該實用程式將按字母順序、檔案建立時間或檔案大小對檔案進行排序。
現實生活中的例子
結論
在本文中,我們學習了各種型別的中級專案,包括詳細資訊和示例。這些專案將幫助您即時瞭解不同的 Python 中級概念。