這些專案構想很有可能會讓你對這門神奇的語言產生興趣。最棒的是,你可以透過這些有趣但也具有挑戰性的專案來增強 Python 程式設計技能。
你知道
Python
是被稱為
全能程式語言
的嗎?是的,它確實是,雖然不應該在每個專案中都使用它。你可以使用它來建立桌面應用程式、遊戲、移動應用程式、網站和系統軟體。
它甚至是最適合用於實現
人工智慧
和
機器學習
演算法的語言。因此,在過去的幾周裡,我為 Python 開發人員收集了一些獨特的專案構想。這些專案構想很有可能會讓你對這門神奇的語言產生興趣。最棒的是,你可以透過這些有趣但也具有挑戰性的專案來增強你的 Python 程式設計技能。讓我們來一一看下。
1、使用語音命令建立軟體 GUI
如今,桌面應用程式開發領域已經取得了巨大進步。你能看到許多拖拽式 GUI 構建器和語音識別庫。那麼,為什麼不能將它們結合在一起,透過與計算機對話來建立一個使用者介面呢?這是一個全新的概念,經過一番研究,我發現還沒有人嘗試這樣做。因此,它可能比下面提到的那些更具挑戰性。下面是使用 Python 開始這個專案的一些說明。首先,你需要用到如下的包:
語音識別庫
PAGE ——拖拽式 GUI 構建器
PAGE 的文件
PAGE 是如何工作的影片
使用 PAGE 建立登入視窗
現在,我們的想法是對一些語音命令進行硬編碼,例如:
你明白我的意思了吧?可以非常簡單明瞭地新增更多這樣的命令。因為這將是一個
最小可行性產品 (Minimum Viable Product,MVP)
。所以,如果你必須硬編碼許多條件語句(例如,if…else),這是完全可以的。設定完這些基本命令後,就可以測試程式碼了。現在,你可以嘗試在視窗中構建一個非常基本的登入表單。這一想法的主要靈活性在於它可以用於遊戲開發、網站和移動應用程式。即使是使用不同的程式語言也可以。
2、AI 博彩機器人
博彩是一種人們預測結果的活動,如果他們猜對了,就會得到回報。在過去幾年中,人工智慧或機器學習領域出現了許多技術進步。例如,你可能聽說過像 AlphaGo Master、AlphaGo Zero 和 AlphaZero 這樣的程式,它們可以比任何專業的人類玩家都能更好地玩 Go(遊戲)。你甚至可以獲得類似 Leela Zero 這樣程式的 原始碼。我想表達的一點是,人工智慧正在變得比我們更聰明。這意味著它可以透過考慮所有的可能性並從過去的經驗中學習來更好地預測一些事情。讓我們在 Python 中應用一些有監督學習的概念建立一個 AI 博彩機器人吧。要開始本專案,這裡有一些你需要使用到的庫。
pandas——資料分析
NumPy——多維陣列、矩陣和數學函式
scikit-learn ——機器學習
XGBoost —— 梯度提升(Gradient Boosting)
Matplotlib ——繪圖
seaborn ——統計資料視覺化
pickle ——Python 物件序列化
首先,你需要選擇一種比賽(例如網球、足球等)來預測結果。現在搜尋可用於訓練模型的歷史匹配結果資料。例如,。csv 格式的網球比賽資料可以從
http://
tennis-data。co。uk
網站上下載。如果你對博彩不瞭解,下面是它的工作原理。
你可以在 Roger Federer 身上以 1。3 的賠率押 10 美元。
如果他獲勝,你將獲得 10 美元(實際金額),外加 3 美元(利潤)。
如果他輸了,你也會輸掉你的錢(例如,10 美元)。
訓練完模型後,我們必須計算每個預測的置信水平(Confidence Level),透過檢查預測正確的次數來了解機器人的表現,最後還要關注投資回報率(ROI)。可以下載由 Edouard Thomas 開發的一個類似的 開源 AI 博彩機器人專案(
https://
github。com/edouardthom/
ATPBetting
)。
3、交易機器人
交易機器人與上一個專案非常相似,因為它也需要 AI 來進行預測。現在的問題是,AI 是否可以正確地預測股價的波動?當然,答案是肯定的。在開始之前,我們需要一些資料來開發一個交易機器人。
Yahoo Finance —— 獲取股票資料
Alpha Vantage —— 用於金融資料的實時 API
這些來自投資百科(Investopedia)的資源可能有助於訓練機器人。
初學者的交易策略
只有通過了這五步測試才能進行交易
讀完這兩篇文章後,你會對什麼時候買股票,什麼時候賣股票有一個更好的理解。這些知識可以很容易地轉換為 Python 程式,從而自動地為我們做出決策。你也可以參考這個名為 freqtrade (
https://
github。com/freqtrade/fr
eqtrade
)的開源交易機器人。它使用 Python 構建,並實現了多種機器學習演算法。
4、鋼鐵俠 Jarvis(基於 AI 的虛擬助手)
上傳這個想法取材於好萊塢電影《鋼鐵俠》系列。這部電影圍繞著科技、機器人和 AI 展開。在這裡,鋼鐵俠用人工智慧為自己打造了一個虛擬助手。該程式被稱為 Jarvis,可以幫助鋼鐵俠完成日常任務。鋼鐵俠使用簡單的英語向 Jarvis 發出指令,Jarvis 也用英語迴應。這意味著我們的程式需要語音識別以及文字轉語音的功能。建議使用這些庫:
語音識別
文字轉語音 (TTS)
現在,你可以對語音命令進行硬編碼,例如:
你還可以使用 Jarvis 執行其他很多工,例如:
設定手機鬧鐘。
不停地檢查家裡的監控攝像頭,並告知是否有人在外面等著。你可以新增更多的功能,如人臉檢測和識別。它可以幫助你瞭解外面有哪些人或者有多少人。
開啟 / 關閉房間的窗戶。
開啟 / 關閉燈。
自動回覆電子郵件。
安排任務。
甚至連 Facebook 的創始人“馬克·扎克伯格”(Mark Zuckerberg)都將 Jarvis 作為一個輔助專案。
5、監控某個網站以瞭解即將舉行的藝術家演唱會
Songkick 是一項非常受歡迎的服務,它可以提供有關即將舉行的音樂會的資訊。其 API 可用於透過以下方式搜尋即將舉行的音樂會:
藝術家
位置
會場
日期和時間
你可以建立一個 Python 指令碼,使用 Songkick 的 API 每天檢查某個特定的音樂會。最後,只要有音樂會,就給自己發一封電子郵件。有時 Songkick 甚至會在其網站上顯示“購票”連結。但是,這個連結可以針對不同的音樂會轉到不同的網站上。這意味著即使我們利用網路抓取,也很難自動購票。相反,我們可以簡單地顯示“購票”連結,就像它在我們的應用程式中一樣,以便進行手動操作。
6、自動續訂 Let’s Encrypt 的免費 SSL 證書
Let’s Encrypt 是一個提供免費 SSL 證書的證書頒發機構。但是,問題在於該證書的有效期只有 90 天。90 天后,你必須續訂。我認為,這是使用 Python 實現自動化的一個絕佳場景。我們可以編寫一些程式碼,在網站 SSL 證書到期之前自動續訂。可以在 GitHub (
https://
github。com/jaygreco/PA_
SSL_AutoRenew
)上檢視這段程式碼 以尋找靈感。
7、識別人群中的個人
人臉識別——作者的照片如今,政府已在公共場所安裝了監控攝像頭,以提高公民的安全性。這些攝像頭大多隻是用於錄製影片,法醫專家必須手動識別或跟蹤個人。如果我們建立一個 Python 程式來實時識別攝像頭中的每個人會怎麼樣呢?首先,我們需要訪問國家身份證資料庫,但我們可能沒有許可權訪問。所以,一個簡單的選擇是建立一個包含家庭成員記錄的資料庫。然後,可以使用一個 人臉識別庫(
https://
pypi。org/project/face-r
ecognition/
),並將其與攝像頭的輸出連線起來。
8、接觸者追蹤
接觸者追蹤是一種識別所有在特定時間段內相互接觸的人的方法。它主要用於像 COVID-19 或 HIV 這樣的大流行病。因為沒有任何關於誰被感染了的資料,我們無法阻止其傳播。Python 可以與稱為 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基於密度的帶噪聲的應用程式空間聚類)的機器學習演算法一起用於接觸者追蹤。由於這只是一個附屬專案,因此我們無法獲得任何官方資料。目前,最好使用 Mockaroo 生成一些實際的測試資料。你可以檢視 這篇文章(
https://
towardsdatascience。com/
contact-tracing-using-less-than-30-lines-of-python-code-6c5175f5385f
) 以瞭解具體程式碼實現。
9、自動將檔案從一個資料夾移動到另一個資料夾
Ubuntu 的的 Nautilus 檔案管理器——圖片由作者上傳這是一個非常基本的 Python 程式,始終監視某個資料夾,每當有檔案新增到該資料夾中時,它都會檢查其型別並相應地將其移動到特定的資料夾中。例如,我們可以跟蹤我們的下載資料夾。現在,當一個新檔案被下載時,它會根據其型別自動將其移動到另一個資料夾中。。exe 檔案很可能是軟體設定程式,因此將其移至“軟體”資料夾中。而將圖片(png、jpg、gif) 移動在“ 影象”資料夾中。透過這種方式,我們可以組織不同型別的檔案,以便快速訪問。
10、從 YouTube 上收集職業道路相關的影片
YouTube 主頁——圖片來自 [Unsplash](
https://
unsplash。com/?
utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
) 由 [Kon Karampelas](
https://
unsplash。com/@konkaramp
elas?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
) 上傳
建立一個應用程式,接受我們需要學習的職業技能名稱。例如,要成為一名 Web 開發人員,我們需要學習:
HTML5
CSS3
JavaScript
後端語言(PHP、Node。js、 Python、
http://
ASP。NET
、或 Java)
Bootstrap 4
WordPress
後端框架 (Laravel、Codeigniter、Django、Flask 等)
等等。
輸入技能後,會有一個“生成職業道路”按鈕。它指導我們的程式搜尋 YouTube,並根據每種技能選擇相關的影片 / 播放列表。如果有很多類似的技能影片,那麼它將選擇觀看次數、評論次數、喜歡次數最多的影片。然後,程式會根據技能將這些影片分組,並在 GUI 中顯示其縮圖、標題和連結。它還會分析每個影片的時長,並彙總,然後告知我們學習該職業道路需要多長時間。現在,作為一個使用者,我們可以逐步觀看這些影片,併成為這一職業的大師。
結論
透過這些獨特的程式設計專案來挑戰自己,可以讓自己保持活力,提高技能,並能幫助你探索新的可能性。我上面提到的一些專案構想也可以用作你的畢業設計。現在是時候用 Python 程式語言展示你的創造力,並將這些構想轉化為你引以為豪的東西了。
原文連結:
https://
towardsdatascience。com/
10-crazy-cool-project-ideas-for-python-developers-d7efeb0a345
作者 | Juan Cruz Martinez 譯者 | 劉雅夢