python练手经典100例-10 个最值得 Python 新人练手的有趣项目-程序员宅基地

原标题:10 个最值得 Python 新人练手的有趣项目

b860a1097ae9498c8e498d2dc0509158.jpeg

作者 | 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. 内容聚合器

e2eceef9c5fa4211bf4cc4ebe60d1d63.png

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

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

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

2. 短网址生成器

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

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

案例:https://bitly.com/

3. 文件重命名工具

bfeb06bb7823472aa2d7f7ddea1c98b9.png

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

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

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

4. 目录树生成器

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

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

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

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

5. MP3播放器

352f7c21257c4acbb5de946328251152.png

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

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

案例:https://getmusicbee.com/

6. 井字游戏

affd0970434f4fe8848d878beef18e83.png

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

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

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

7. 测验类应用程序

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

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

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

案例:https://kahoot.com/

8. 计算器

705510374c324628bf73bd924874b4e8.png

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

9. 虚拟助手

94f514e9d1354f9d9c65870064f72420.png

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

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

10. 货币换算器

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

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

总结

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

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

原文:

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

6c1c45ceb90745ef8a1a67ad1319cac5.png

热销 750,000 册的

史诗级 Python 经典

《Python编程:从入门到实践》第2版

抢先发售

6590e40c4be9454dac6758d56ad99f58.gif

Python 编程:从入门到实践(第2版)

升级亮点

高评分高口碑的经典延续:豆瓣评分9.1,长期位居亚马逊编程入门类榜首图书;

1次大幅度的升级与修订:采用Python 3新特性升级,选取维护良好的流行库,并全面修订项目代码;

1条学习路线图:基础知识+实战项目+每章练习题,覆盖从入门到实践的完整学习路线;

1套新增随书教学视频:B站UP主Lisa小姐姐全新操刀录制,随书扫描即可观看;

1个职场竞争力的加码技能:Python应用领域非常广泛,掌握Python是成为就业市场大黑马的必备技能;

� � �

责任编辑:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/q6q6q/article/details/109346791

智能推荐

华为机试后的总结之---输入输出,Java从键盘获取输入(不知道输入个数)——java中Scanner的hasNext()死循环的问题。_华为java笔试多个输入如何取-程序员宅基地

文章浏览阅读1.5k次。刚开始机试,就被卡在了输入输出上,网上找了半天,贴出来:链接如下:https://blog.csdn.net/imgcl/article/details/82875061题目:输入任一行整形数组,和一个长度n,取n的长度一次循环使其连接在一起如 输入 n = 3;输入:1,2,3,4 5,6,7,8,9;输出为:1,2,3,5,6,7,4,8,9..._华为java笔试多个输入如何取

极致呈现系列之:Vue3中使用Echarts图表初体验_vue3好看的echart-程序员宅基地

文章浏览阅读1.2k次。介绍了如何在Vue3中使用Echarts图表库。探讨了如何安装和引用Echarts库、如何使用Echarts库创建基本图表、如何自定义图表、如何将数据传递给Echarts库以及如何处理Echarts库中的事件。_vue3好看的echart

ifconfig与ifconfig -a的区别-程序员宅基地

文章浏览阅读1.7w次,点赞9次,收藏33次。今天做项目时需要通过ifconfig -a命令统计网卡数量,就想知道ifconfig和ifconfig -a的区别。结果在网上找了半天,也没有找到。正好同一天在docker中启用网卡时,发现了两个命令的区别,特此记录。先上结论ifconfig:显示up状态(激活状态)的网卡信息ifconfig -a:显示所有网卡的信息,包含未up的发现过程1.首先创建两个docker容器并启动,过程略,记得开启--privileged=true2.使用ip link命令sudo ip link add et_ifconfig -a

ode事件函数matlab,在Matlab中求解ODE时,是否可以使用匿名函数作为事件函数-程序员宅基地

文章浏览阅读220次。此外(这是在游戏中很晚才增加,但这让我感到沮丧).这是一个嵌套函数的解决方案:function [ dealfunchandle ] = dealwithit( arrayfunc )% Takes as input an event function of (t,z) that returns a 3 array (in same order as event syntax).function ..._matlab ode event

zbrush导入obj模型不显示_ZBrush中如何导入和导出OBJ文件—ZBrush教程-程序员宅基地

文章浏览阅读3.5k次。原标题:ZBrush中如何导入和导出OBJ文件—ZBrush教程 ZBrush中如何导入和导出OBJ文件ZBrush软件中对于文件的导出与储存格式是多样的。OBJ格式是如何导入和导出ZBrush的,很多朋友发现ZBrush更多情况下显示的是ZTL和ZPR的格式,究竟如何导入和导出OBJ的文件,本文小编将做详细讲解。导入OBJ文件当有一个OBJ格式的文件要导入ZBrush中细致雕刻的时候,单击Too..._zbrush现有模型导入找不到

java factorial_[Java]函数求阶乘n!(factorial)(四种方法)-程序员宅基地

文章浏览阅读2.3k次。1. 引言实现阶乘的方法很多,这边介绍三种方法,分别是递归,尾递归,循环和BigDecimal。2. 代码public class Test {public static void main(String[] args) {// TODO Auto-generated method stubAlogrithm a = new Alogrithm1();a.fact(5);a.print(a.fac..._java写一个类factorial求n!

随便推点

【C++进阶知识】02 - RVO优化、值类别、forward、move-程序员宅基地

文章浏览阅读253次。主要介绍编译器的RVO/NRVO优化、左右值引用、值类别和转发等的详细内容。_rvo优化

Spring学习笔记_springer校稿-程序员宅基地

文章浏览阅读133次。第1节 Spring-1发展历史spring一.总体把握spring相当于是一个容器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aajqBF1W-1633351727090)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210823201455183.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KmcPmlOu-16333517270_springer校稿

iftop 安装以及相关参数及说明(转载自csdn)-程序员宅基地

文章浏览阅读51次。转载自http://blog.csdn.net/cqinter/article/details/6250211关于 Iftopiftop 是类似于top的实时流量监控工具。主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同那台机器间的流量大小,非常适合于代理服务器和iptables服务器使用官方网站:http://www.ex-parrot.com/~pdw/..._suse安装iftop

K8S ingress nginx 如何设置访问白名单_ingress访问白名单-程序员宅基地

文章浏览阅读2.6k次。K8S ingress nginx 设置访问白名单前端无代理负载情况:apiVersion: extensions/v1beta1kind: Ingressmetadata: name: ingress-myapp namespace: default annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/whitelist-source-range: '10.16.2._ingress访问白名单

多人协作代码管理工具 gitlab 实战演练-程序员宅基地

文章浏览阅读8.3k次,点赞55次,收藏66次。GitLab在微服务架构中可以发挥重要作用,包括代码托管、开发和协作、CI/CD以及版本控制和协调。而且Java开发工具Idea高度集成git,对开发者来说非常友好,是一个十分不错的工具。

Unity与原生交互之AndroidStudio篇——Unity导出Android工程,导入AndroidStudio打包APK全流程_unity导出安卓工程-程序员宅基地

文章浏览阅读4.6k次,点赞6次,收藏17次。或(1)首先的问题:该错误是。_unity导出安卓工程

推荐文章

热门文章

相关标签