針對Python開發人員的10個“瘋狂”的項目構想

本文最初發表於 Towards Data Science 博客,由InfoQ 中文站翻譯並分享。

你知道Python是被稱爲全能編程語言的嗎?

是的,它確實是,雖然不應該在每個項目中都使用它

你可以使用它來創建桌面應用程序、遊戲、移動應用程序、網站和系統軟件。它甚至是最適合用於實現人工智能機器學習算法的語言。

因此,在過去的幾周裏,我爲Python開發人員收集了一些獨特的項目構想。這些項目構想很有可能會讓你對這門神奇的語言產生興趣。最棒的是,你可以通過這些有趣但也具有挑戰性的項目來增強你的Python編程技能。

讓我們來一一看下。

1、使用語音命令創建軟件GUI

“交互示例——原圖來自UnsplashHeadway上傳,本圖由作者編輯過”

如今,桌面應用程序開發領域已經取得了巨大進步。你能看到許多拖拽式GUI構建器和語音識別庫。那麼,爲什麼不能將它們結合在一起,通過與計算機對話來創建一個用戶界面呢?

這是一個全新的概念,經過一番研究,我發現還沒有人嘗試這樣做。因此,它可能比下面提到的那些更具挑戰性。

下面是使用Python開始這個項目的一些說明。首先,你需要用到如下的包:

現在,我們的想法是對一些語音命令進行硬編碼,例如:

你明白我的意思了吧?可以非常簡單明瞭地添加更多這樣的命令。

因爲這將是一個最小可行性產品(Minimum Viable Product,MVP)。所以,如果你必須硬編碼許多條件語句(例如,if…else),這是完全可以的。

設置完這些基本命令後,就可以測試代碼了。現在,你可以嘗試在窗口中構建一個非常基本的登錄表單。

這一想法的主要靈活性在於它可以用於遊戲開發、網站和移動應用程序。即使是使用不同的編程語言也可以。

2、AI博彩機器人

網球比賽——圖片來自UnsplashMoises Alex上傳"

博彩是一種人們預測結果的活動,如果他們猜對了,就會得到回報。在過去幾年中,人工智能或機器學習領域出現了許多技術進步。

例如,你可能聽說過像AlphaGo MasterAlphaGo ZeroAlphaZero這樣的程序,它們可以比任何專業的人類玩家都能更好地玩Go(遊戲)。你甚至可以獲得類似Leela Zero這樣程序的源碼

我想表達的一點是,人工智能正在變得比我們更聰明。這意味着它可以通過考慮所有的可能性並從過去的經驗中學習來更好地預測一些事情。

讓我們在Python中應用一些有監督學習的概念創建一個AI博彩機器人吧。要開始本項目,這裏有一些你需要使用到的庫。

首先,你需要選擇一種比賽(例如網球、足球等)來預測結果。現在搜索可用於訓練模型的歷史匹配結果數據。

例如,.csv格式的網球比賽數據可以從tennis-data.co.uk網站上下載

如果你對博彩不瞭解,下面是它的工作原理。

  • 你可以在Roger Federer身上以1.3的賠率押10美元。
  • 如果他獲勝,你將獲得10美元(實際金額),外加3美元(利潤)。
  • 如果他輸了,你也會輸掉你的錢(例如,10美元)。

訓練完模型後,我們必須計算每個預測的置信水平(Confidence Level),通過檢查預測正確的次數來了解機器人的表現,最後還要關注投資回報率(ROI)。

可以下載由Edouard Thomas開發的一個類似的開源AI博彩機器人項目

3、交易機器人

交易——圖片來自UnsplashNick Chong上傳

交易機器人與上一個項目非常相似,因爲它也需要AI來進行預測。

現在的問題是,AI是否可以正確地預測股價的波動?

當然,答案是肯定的。

在開始之前,我們需要一些數據來開發一個交易機器人。

這些來自投資百科(Investopedia)的資源可能有助於訓練機器人。

讀完這兩篇文章後,你會對什麼時候買股票,什麼時候賣股票有一個更好的理解。這些知識可以很容易地轉換爲Python程序,從而自動地爲我們做出決策。

你也可以參考這個名爲freqtrade的開源交易機器人。它使用Python構建,並實現了多種機器學習算法。

4、鋼鐵俠Jarvis(基於AI的虛擬助手)

AI助手界面——圖片來自UnsplashJoshua Sortino上傳

這個想法取材於好萊塢電影《鋼鐵俠》系列。這部電影圍繞着科技、機器人和AI展開。

在這裏,鋼鐵俠用人工智能爲自己打造了一個虛擬助手。該程序被稱爲Jarvis,可以幫助鋼鐵俠完成日常任務。

鋼鐵俠使用簡單的英語向Jarvis發出指令,Jarvis也用英語迴應。這意味着我們的程序需要語音識別以及文本轉語音的功能。

建議使用這些庫:

現在,你可以對語音命令進行硬編碼,例如:

你還可以使用Jarvis執行其他很多任務,例如:

  • 設置手機鬧鐘。
  • 不停地檢查家裏的監控攝像頭,並告知是否有人在外面等着。你可以添加更多的功能,如人臉檢測和識別。它可以幫助你瞭解外面有哪些人或者有多少人。
  • 打開/關閉房間的窗戶。
  • 打開/關閉燈。
  • 自動回覆電子郵件。
  • 安排任務。

甚至連Facebook的創始人“馬克·扎克伯格”(Mark Zuckerberg)都將Jarvis作爲一個輔助項目。

5、監控某個網站以瞭解即將舉行的藝術家演唱會

門票——圖片來自UnsplashAndy Li上傳

Songkick是一項非常受歡迎的服務,它可以提供有關即將舉行的音樂會的信息。其API可用於通過以下方式搜索即將舉行的音樂會:

  • 藝術家
  • 位置
  • 會場
  • 日期和時間

你可以創建一個Python腳本,使用Songkick的API每天檢查某個特定的音樂會。最後,只要有音樂會,就給自己發一封電子郵件。

有時Songkick甚至會在其網站上顯示“購票”鏈接。但是,這個鏈接可以針對不同的音樂會轉到不同的網站上。這意味着即使我們利用網絡抓取,也很難自動購票。

相反,我們可以簡單地顯示“購票”鏈接,就像它在我們的應用程序中一樣,以便進行手動操作。

6、自動續訂Let’s Encrypt 的免費SSL證書

Let’s Encrypt的圖標—— https://letsencrypt.org/

Let’s Encrypt是一個提供免費SSL證書的證書頒發機構。但是,問題在於該證書的有效期只有90天。 90天后,你必須續訂。

我認爲,這是使用Python實現自動化的一個絕佳場景。我們可以編寫一些代碼,在網站SSL證書到期之前自動續訂。

可以在GitHub上查看這段代碼以尋找靈感。

7、識別人羣中的個人

人臉識別——作者的照片

如今,政府已在公共場所安裝了監控攝像頭,以提高公民的安全性。這些攝像頭大多隻是用於錄製視頻,法醫專家必須手動識別或跟蹤個人。

如果我們創建一個Python程序來實時識別攝像頭中的每個人會怎麼樣呢?首先,我們需要訪問國家身份證數據庫,但我們可能沒有權限訪問。

所以,一個簡單的選擇是創建一個包含家庭成員記錄的數據庫。

然後,可以使用一個人臉識別庫,並將其與攝像頭的輸出連接起來。

8、接觸者追蹤

接觸者追蹤應用程序——圖片來自UnsplashMarkus Winkler上傳

接觸者追蹤是一種識別所有在特定時間段內相互接觸的人的方法。它主要用於像COVID-19或HIV這樣的大流行病。因爲沒有任何關於誰被感染了的數據,我們無法阻止其傳播。

Python可以與稱爲DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基於密度的帶噪聲的應用程序空間聚類)的機器學習算法一起用於接觸者追蹤。

由於這只是一個附屬項目,因此我們無法獲得任何官方數據。目前,最好使用Mockaroo生成一些實際的測試數據。

你可以查看這篇文章以瞭解具體代碼實現。

9、自動將文件從一個文件夾移動到另一個文件夾

Ubuntu的的Nautilus文件管理器——圖片由作者上傳

這是一個非常基本的Python程序,始終監視某個文件夾,每當有文件添加到該文件夾中時,它都會檢查其類型並相應地將其移動到特定的文件夾中。

例如,我們可以跟蹤我們的下載文件夾。現在,當一個新文件被下載時,它會根據其類型自動將其移動到另一個文件夾中。

.exe文件很可能是軟件設置程序,因此將其移至“軟件”文件夾中。而將圖片(png、jpg、gif) 移動在“ 圖像”文件夾中。

通過這種方式,我們可以組織不同類型的文件,以便快速訪問。

10、從YouTube上收集職業道路相關的視頻

YouTube主頁——圖片來自UnsplashKon Karampelas上傳

創建一個應用程序,接受我們需要學習的職業技能名稱。

例如,要成爲一名Web開發人員,我們需要學習:

  • HTML5
  • CSS3
  • JavaScript
  • 後端語言(PHP、Node.js、 Python、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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章