0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

10具有挑战性的Python项目创意

Android编程精选 来源:InfoQ 作者:Juan Cruz Martinez 2021-10-12 10:43 次阅读

你知道 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. 自动将文件从一个文件夹移动到另一个文件夹

这是一个非常基本的 Python 程序,始终监视某个文件夹,每当有文件添加到该文件夹中时,它都会检查其类型并相应地将其移动到特定的文件夹中。例如,我们可以跟踪我们的下载文件夹。现在,当一个新文件被下载时,它会根据其类型自动将其移动到另一个文件夹中。.exe 文件很可能是软件设置程序,因此将其移至“软件”文件夹中。而将图片(png、jpg、gif) 移动在“ 图像”文件夹中。通过这种方式,我们可以组织不同类型的文件,以便快速访问。

10. 从 YouTube 上收集职业道路相关的视频

创建一个应用程序,接受我们需要学习的职业技能名称。例如,要成为一名 Web 开发人员,我们需要学习:

HTML5

CSS3

JavaScript

后端语言(PHP、Node.js、 Python、ASP.NET、或 Java)

Bootstrap 4

WordPress

后端框架 (Laravel、Codeigniter、Django、Flask 等)

等等。

输入技能后,会有一个“生成职业道路”按钮。它指导我们的程序搜索 YouTube,并根据每种技能选择相关的视频 / 播放列表。如果有很多类似的技能视频,那么它将选择观看次数、评论次数、喜欢次数最多的视频。然后,程序会根据技能将这些视频分组,并在 GUI 中显示其缩略图、标题和链接。它还会分析每个视频的时长,并汇总,然后告知我们学习该职业道路需要多长时间。

现在,作为一个用户,我们可以逐步观看这些视频,并成为这一职业的大师。结论通过这些独特的编程项目来挑战自己,可以让自己保持活力,提高技能,并能帮助你探索新的可能性。我上面提到的一些项目构想也可以用作你的毕业设计。现在是时候用 Python 编程语言展示你的创造力,并将这些构想转化为你引以为豪的东西了。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    26396

    浏览量

    264004
  • 语音识别
    +关注

    关注

    37

    文章

    1635

    浏览量

    111827
  • 机器学习
    +关注

    关注

    66

    文章

    8105

    浏览量

    130542
  • python
    +关注

    关注

    51

    文章

    4669

    浏览量

    83457

原文标题:10 个疯狂的 Python 项目创意

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    pycharm怎么配置python环境变量

    PyCharm 是一种以 Python 为主的集成开发环境 (IDE),它提供了一系列的功能用于开发、调试、测试和部署 Python 程序。在使用 PyCharm 开发 Python 项目
    的头像 发表于 11-29 14:56 901次阅读

    Python用for求1到10的乘积

    Python是一种简单易学、高效强大的编程语言,广泛应用于各种领域。在Python中,使用for循环可以重复执行一段代码块,非常适合处理重复性任务。本文将详细介绍如何使用for循环计算1到10的乘积
    的头像 发表于 11-23 15:48 2930次阅读

    Python项目中遇到的10个安全陷阱

    极少的微妙之处或细节会使开发者们疏忽大意,从而在代码中引入严重的安全漏洞。 在这篇博文中,我们将分享在实际 Python 项目中遇到的 10 个安全陷阱。我们选择了一些在技术圈中不太为人所知的陷阱。通过介绍每个问题及其造成的影响
    的头像 发表于 10-30 10:34 238次阅读

    可以提取图像文本的5大Python

    光学字符识别是一个古老但依然具有挑战性的问题,涉及从非结构化数据中(包括图像和PDF文档)检测和识别文本。它在银行、电子商务和社交媒体内容管理等领域具有广泛的应用。
    的头像 发表于 10-30 10:30 443次阅读
    可以提取图像文本的5大<b class='flag-5'>Python</b>库

    PyCharm 2022.2支持最新 Python 3.11 和 PyScript 框架

    通常而言,使用新潮的或者快速发展的技术,可能会挺有挑战性,你可能得经常阅读文档,才能熟悉新的语法、API 和协议。 PyCharm 2022.2 通过提供对 Python 3.11 的语言特性
    的头像 发表于 10-21 10:35 276次阅读
    PyCharm 2022.2支持最新 <b class='flag-5'>Python</b> 3.11 和 PyScript 框架

    如何使用Python和PinPong库控制Arduino

    Python程序员在编程Arduino时面临的第一个挑战是语言不同。Arduino IDE使用的是受C和C++启发的语言。实际上,像Arduino这样的平台与Python非常搭配,特别适用于需要
    的头像 发表于 10-13 10:59 440次阅读
    如何使用<b class='flag-5'>Python</b>和PinPong库控制Arduino

    Python编程实用指南

    介绍 Python 语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的第一部分介绍了基本的 Python 编程概念,第二部分介绍了一些不同的任务,通过编写 Python
    发表于 09-27 06:21

    如何在Python项目中应用分层架构

    本文来自一位 Python 开发者对一个庞大的 Python 项目的代码结构的总结。
    发表于 08-17 10:48 504次阅读
    如何在<b class='flag-5'>Python</b><b class='flag-5'>项目</b>中应用分层架构

    Arm Cortex-R处理器对比表

    Cortex-R系列处理器提供快速、确定的处理和高性能,同时满足各种情况下具有挑战性的实时限制。 它们在性能、功率和面积优化的封装中结合了这些功能,使其成为要求高抗错的可靠系统的可靠选择。
    发表于 08-11 06:14

    提前应对电动滑板车、电动自行车和其他位置跟踪物联网设计的电力挑战

    从电源管理的角度来看,在这些空间受限的产品中设计位置跟踪功能尤其具有挑战性。让我们仔细看看这篇文章中的电源挑战,以及如何克服它们。
    的头像 发表于 06-28 11:15 335次阅读
    提前应对电动滑板车、电动自行车和其他位置跟踪物联网设计的电力<b class='flag-5'>挑战</b>

    Python10个有用的pip技巧

    Python 是一种广泛使用的编程语言,有大量的第三方库和工具可供使用。Pip 是 Python 的一个包管理工具,可以方便地安装、升级和删除 Python 包。在这篇文章中,我们将介绍 10
    的头像 发表于 06-21 17:10 655次阅读

    Python和Anaconda的版本对应关系

    原文链接 Python和Anaconda的版本对应关系如下: Packages included in Anaconda 2022 . 10 for 64 -bit Linux on x 86
    的头像 发表于 06-13 16:52 716次阅读
    <b class='flag-5'>Python</b>和Anaconda的版本对应关系

    浅谈芯片设计最大的挑战和机遇

    多芯片以及异构3D-IC系统既是目前最大的机遇,也是面临的最大挑战。中国公司也是一个巨大的挑战,尤其在EDA领域。他们那有很多初创公司,我们向中国销售产品也变得具有挑战性
    发表于 06-08 12:38 437次阅读

    如何使用Wemos D1 mini制作一款简单但具有挑战性的游戏?

    我使用 Wemos D1 mini 制作了一款简单但具有挑战性的游戏。 我尽量使说明尽可能详细,但如果您对此任何疑问,请告诉我。 您所要做的就是将魔杖从电线的一端拿到另一端。它有一个 OLED
    发表于 05-23 06:14

    如何使用MCU xpresso IDE中的post build命令构建项目后执行python脚本文件?

    我想在使用 MCUxpresso IDE 中的 post build 命令构建项目后执行 python 脚本文件。请让我知道执行 python 脚本或 .exe 文件的过程。
    发表于 05-10 09:29