10 個瘋狂的 Python 項目創意
這些項目構想很有可能會讓你對這門神奇的語言產生興趣。最棒的是,你可以通過這些有趣但也具有挑戰性的項目來增強 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 格式的網球比賽數據可以從 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/freqtrade)的開源交易機器人。它使用 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-recognition/),并將其與攝像頭的輸出連接起來。
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、自動將文件從一個文件夾移動到另一個文件夾
例如,我們可以跟蹤我們的下載文件夾。現在,當一個新文件被下載時,它會根據其類型自動將其移動到另一個文件夾中。
.exe 文件很可能是軟件設置程序,因此將其移至“軟件”文件夾中。而將圖片(png、jpg、gif) 移動在“ 圖像”文件夾中。
通過這種方式,我們可以組織不同類型的文件,以便快速訪問。
例如,要成為一名 Web 開發人員,我們需要學習:
-
HTML5 -
CSS3 -
JavaScript -
后端語言(PHP、Node.js、 Python、ASP.NET、或 Java) -
Bootstrap 4 -
WordPress -
后端框架 (Laravel、Codeigniter、Django、Flask 等) -
等等。
輸入技能后,會有一個“生成職業道路”按鈕。它指導我們的程序搜索 YouTube,并根據每種技能選擇相關的視頻 / 播放列表。如果有很多類似的技能視頻,那么它將選擇觀看次數、評論次數、喜歡次數最多的視頻。
然后,程序會根據技能將這些視頻分組,并在 GUI 中顯示其縮略圖、標題和鏈接。
它還會分析每個視頻的時長,并匯總,然后告知我們學習該職業道路需要多長時間。
現在,作為一個用戶,我們可以逐步觀看這些視頻,并成為這一職業的大師。
結論
文章轉載:Python編程學習圈
(版權歸原作者所有,侵刪)