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

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签