Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Claire D. Costa作者图灵教育来源林亦霖校对王菁 编辑

10个最值得Python新人练手的有趣项目

本文为你介绍10个值得入手的Python有趣项目。

有很多 Python 新手留言问:“Python 入门很久了,但项目经验很少,有没有什么项目,可以让自己实践一下呢?”

这是个很普遍的问题,首先你要想好做什么类别的项目,总体来说,项目分为三类:

  • Web

构建一个 Web 应用发布在网络上让用户访问使用。需要实现 Web 应用的前端、后端、可视化部分的业务逻辑。可以使用 Django,Flask 和 Web2Py 等工具和框架来完成。

  • 桌面 GUI

桌面应用也很常见,好的应用可以满足相当大的用户群体。在构建桌面应用时,可以使用 PySimpleGUI 包轻松开发,该包允许你使用 Python 来构建所有必要的元素;PyQt5 框架还提供了高级 GUI 构建元素,但学习难度会更高一点。

  • 命令行程序

命令行程序仅在控制台窗口中工作,根本没有 GUI。用户交互是通过命令进行的,它是与程序进行交互的最老的方法,但不要因为缺乏实用性而将缺少 GUI 视为错误。

数以百计的顶级企业依靠命令行程序执行日常业务活动。要构建命令行程序,可以使用 docopt,Python Fire,plac 和 cliff 等工具。

Python 对不同水平的开发者都很友好,从学生到普通开发人员,甚至是专家和专业人士都适用。但每一门编程语言都需要不断的学习,Python 也是如此。

如果你想要更深入的学习一些实用技能,最好的方法就是用 Python 上手实践一些有趣的项目。下面提到的这些项目面向所有技能水平的开发者,它们可以提高你对 Python 的技能掌握和兴趣程度。

1. 内容聚合器


互联网是数百万人的主要信息来源,人们总会需要通过网络搜索些什么。如果需要搜索大量关于特定主题的信息,可以利用内容聚合器来节省搜索时间。

内容聚合器是一种从大量网站抓取特定主题的信息并加以整合的工具。要制作一个内容聚合器,你可以用 requests 库处理 HTTP 请求,利用 BeautifulSoup 解析和爬取所需信息,同时借助数据库来保存收集到的信息。

案例:http://www.hvper.com/

2. 短网址生成器

URL 是一切互联网资源的主要导航来源,有时候这些 URL 会包含大量的乱码,短网址生成器能够减少这些 URL 中的字符数,更易于记忆和使用。

开发短网址生成器实际上就是利用随机和字符串模块,从输入的长URL中生成一个新的短 URL。完成这一步之后,你需要将长 URL 和短 URL 进行映射,然后存储在数据库中,以便用户未来使用。

案例:https://bitly.com/

3. 文件重命名工具

如果你的工作需要经常管理大量文件,那么文件重命名工具能为你节省大量时间。从本质上来说,文件重命名工具就是利用预定义的初始标识符重命名数百个文件,其中的初始标识符可以通过代码定义,也可以让客户自定义。

你可以使用 Python 中的 sys、shutil 和 os 等库来实现即时重命名文件。如果需要为文件添加自定义初始标识符的选项,你可以利用 regex 库匹配文件的命名模式。

案例:https://en.wikipedia.org/wiki/Ren_(command)

4. 目录树生成器

如果你需要对系统中的所有目录进行可视化处理,并确定它们之间的关系,那么就需要用到目录树生成器这种工具。

目录树的本质作用是表明哪些目录是始目录,而哪些又是它的子目录。如果你的工作涉及很多目录,而你又想要分析它们的位置,这样的工具就能帮到你。

要构建目录树生成器,你可以使用 os 库列出文件和目录,以及 docopt 框架。

案例:https://en.wikipedia.org/wiki/Tree_(command)

5. MP3播放器

如果你喜欢听音乐,你可能想不到用 Python 就能构建一个音乐播放器。利用图形界面构建一个 MP3 播放器,配有基本的重放控件,甚至可以显示综合媒体信息,比如艺术家、媒体长度、专辑名称等等。

你也可以选择用音乐播放器导航到文件夹和搜索 MP3 文件。为了能更方便地利用 Python 处理媒体文件,你可以使用 simpleaudio、pymedia 和 pygame 库。

案例:https://getmusicbee.com/

6. 井字游戏

井字游戏是一款非常经典的游戏,相信大家都很熟悉。这个游戏简单有趣,而且只需要两名玩家参与。

游戏目标是在一个 3x3 的网格上画X或O,最先以横、直、对角斜连成一线的玩家为胜。类似这种项目可以使用 Python 的 pygame 库,它自带构建这种项目所需的所有图形和音频素材。

案例:https://www.edureka.co/blog/snake-game-with-pygame/

7. 测验类应用程序

另外还有一种既流行又有趣,用 Python 就可以构建的项目就是测验应用程序,其中一个很受欢迎的产品就是 Kahoot。

这是一款可以在课堂上进行答题互动的产品,它把学习变成一种有趣的现场/课堂答题活动,很受学生欢迎。这种应用程序是给出一系列选择题,要求用户选择其中一个选项,并在设置时间结束后揭示正确的选项。

作为开发者,你也可以创建可供用户随意添加想要纳入测验的问题和答案的功能。要制作一个测验应用程序,你需要利用数据库来存储所有的问题、选项、正确答案和用户得分。

案例:https://kahoot.com/

8. 计算器

当然,在学习一门新的编程语言时,大家可以试试开发一个计算器(这种传统项目,仅仅为了好玩儿也不该错过)。相信大家都知道什么是计算器,如果你已经试过了,还可以尝试利用更高级的 GUI 对它进行改进,让它更接近于当前操作系统中采用的新型计算器。想要实现这个目标,你可以使用 tkinter 包为项目添加 GUI 元素。

9. 虚拟助手

现在几乎每部智能手机都自带一个不同类型的智能助手,它能接收你的语音或文字命令,帮你管理电话、笔记、预约出租车等等,比如谷歌助理、Alexa、Cortana 和 Siri 等。

如果你想试试如何制作这类东西,可以使用 pyaudio、SpeechRecognition、gTTS 等工具包。这个项目的目标是记录音频,将音频转换为文本、处理命令,让程序根据命令做出对应响应。

10. 货币换算器

顾名思义,这个项目是要构建一个货币换算器,你只要输入所需的基准货币值,转换器就能向你反馈换算后的目标货币值。

最好是通过代码实现从互联网获取最新兑换利率的功能,来提高换算的准确性。想要实现这个目标,你可以利用 tkinter 包来构建图形用户界面。

总结

我们可以发现 Python 是一种非常实用的编程语言,适用于开发各种类型和规模的应用程序。此外,Python 配置的程序包对于开发者来说价值巨大,能够极大地简化开发过程。

最后,我想说的是,Python 的应用潜力无限,你唯一缺少的就是找准适当的创意。

原文链接:https://towardsdatascience.com/10-cool-python-project-ideas-for-python-developers-7953047e203

THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

入门Python
3
相关数据
基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

推荐文章
暂无评论
暂无评论~