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

发布于:2020-12-24 16:02:48

0

935

0

Python 项目 GUI

作者 | Claire D. Costa

编译 | Wendy

有很多 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 的应用潜力无限,你唯一缺少的就是找准适当的创意。