你知道 Python 是被称为 全能编程语言 的吗?是的,它确实是,虽然不应该在每个项目中都使用它。你可以使用它来创建桌面应用程序、游戏、移动应用程序、网站和系统软件。它甚至是最适合用于实现 人工智能 和 机器学习 算法的语言。因此,在过去的几周里,我为 Python 开发人员收集了一些独特的项目构想。这些项目构想很有可能会让你对这门神奇的语言产生兴趣。最棒的是,你可以通过这些有趣但也具有挑战性的项目来增强你的 Python 编程技能。让我们来一一看下。
1. 使用语音命令创建软件 GUI
交互示例——原图来自 Unsplash
如今,桌面应用程序开发领域已经取得了巨大进步。你能看到许多拖拽式 GUI 构建器和语音识别库。那么,为什么不能将它们结合在一起,通过与计算机对话来创建一个用户界面呢?这是一个全新的概念,经过一番研究,我发现还没有人尝试这样做。因此,它可能比下面提到的那些更具挑战性。下面是使用 Python 开始这个项目的一些说明。首先,你需要用到如下的包:
- 语音识别库
- PAGE ——拖拽式 GUI 构建器
- PAGE 的文档
- PAGE 是如何工作的视频
- 使用 PAGE 创建登录窗口
现在,我们的想法是对一些语音命令进行硬编码,例如:
你明白我的意思了吧?可以非常简单明了地添加更多这样的命令。因为这将是一个 最小可行性产品 (Minimum Viable Product,MVP) 。所以,如果你必须硬编码许多条件语句(例如,if…else),这是完全可以的。设置完这些基本命令后,就可以测试代码了。现在,你可以尝试在窗口中构建一个非常基本的登录表单。这一想法的主要灵活性在于它可以用于游戏开发、网站和移动应用程序。即使是使用不同的编程语言也可以。
2. AI 博彩机器人
网球比赛——图片来自 Unsplash
博彩是一种人们预测结果的活动,如果他们猜对了,就会得到回报。在过去几年中,人工智能或机器学习领域出现了许多技术进步。例如,你可能听说过像 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/edouardtho...)。
3. 交易机器人
交易——图片来自 Unsplash
交易机器人与上一个项目非常相似,因为它也需要 AI 来进行预测。现在的问题是,AI 是否可以正确地预测股价的波动?当然,答案是肯定的。在开始之前,我们需要一些数据来开发一个交易机器人。
- Yahoo Finance —— 获取股票数据
- Alpha Vantage —— 用于金融数据的实时 API
这些来自投资百科(Investopedia)的资源可能有助于训练机器人。
- 初学者的交易策略
- 只有通过了这五步测试才能进行交易
读完这两篇文章后,你会对什么时候买股票,什么时候卖股票有一个更好的理解。这些知识可以很容易地转换为 Python 程序,从而自动地为我们做出决策。你也可以参考这个名为 freqtrade (https://github.com/freqtrade/...)的开源交易机器人。它使用 Python 构建,并实现了多种机器学习算法。
4. 钢铁侠 Jarvis(基于 AI 的虚拟助手)
AI 助手界面——图片来自 Unsplash
这个想法取材于好莱坞电影《钢铁侠》系列。这部电影围绕着科技、机器人和 AI 展开。在这里,钢铁侠用人工智能为自己打造了一个虚拟助手。该程序被称为 Jarvis,可以帮助钢铁侠完成日常任务。钢铁侠使用简单的英语向 Jarvis 发出指令,Jarvis 也用英语回应。这意味着我们的程序需要语音识别以及文本转语音的功能。建议使用这些库:
- 语音识别
- 文字转语音 (TTS)
现在,你可以对语音命令进行硬编码,例如:
你还可以使用 Jarvis 执行其他很多任务,例如:
- 设置手机闹钟。
- 不停地检查家里的监控摄像头,并告知是否有人在外面等着。你可以添加更多的功能,如人脸检测和识别。它可以帮助你了解外面有哪些人或者有多少人。
- 打开 / 关闭房间的窗户。
- 打开 / 关闭灯。
- 自动回复电子邮件。
- 安排任务。
甚至连 Facebook 的创始人“马克·扎克伯格”(Mark Zuckerberg)都将 Jarvis 作为一个辅助项目。
5. 监控某个网站以了解即将举行的艺术家演唱会
门票——图片来自 Unsplash
Songkick 是一项非常受欢迎的服务,它可以提供有关即将举行的音乐会的信息。其 API 可用于通过以下方式搜索即将举行的音乐会:
- 艺术家
- 位置
- 会场
- 日期和时间
你可以创建一个 Python 脚本,使用 Songkick 的 API 每天检查某个特定的音乐会。最后,只要有音乐会,就给自己发一封电子邮件。有时 Songkick 甚至会在其网站上显示“购票”链接。但是,这个链接可以针对不同的音乐会转到不同的网站上。这意味着即使我们利用网络抓取,也很难自动购票。相反,我们可以简单地显示“购票”链接,就像它在我们的应用程序中一样,以便进行手动操作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。