精选文章 适合新手练习的Python项目有哪些?

适合新手练习的Python项目有哪些?

作者:nanhe54864 时间: 2020-08-04 09:29:48
nanhe54864 2020-08-04 09:29:48

适合新手练习的Python项目有哪些?简单易上手的Python项目汇总:Web 项目设计:内容聚合器、正则表达式查询工具、网址缩短、便利贴、功能、测验、GUI 项目设计:MP3 播放器、闹铃提醒工具、文件管理器、记账功能、命令行项目设计:通讯录、网站连接检查、批量文件重命名工具、目录树生成器。

适合新手练习的Python项目有哪些?1

  一、Web 项目设计:内容聚合器(Content Aggregator)

  该项目设计的主要目标是聚合内容。首先,需要知道内容聚合器从哪些站点获取内容。然后,使用请求库来发送 HTTP 请求,并使用 BeautifulSoup 解析和抓取站点的必要内容。

  该应用程序可以将其内容聚合作为后台进程进行实现。celery 或 apscheduler 等库可以提供帮助。建议尝试 apscheduler。它非常适用于小型后台进程。从各个站点抓取的内容需要进行保存,需要使用数据库。

  二、正则表达式查询工具

  这类项目的主要目的是判别用户输入的查询字符串的有效性。可以让它给出有效和无效的判别,例如「查询字符串有效」和「查询字符串无效」,以绿色显示有效,以红色显示无效。不必从头开始构造查询工具。使用 Python 的标准 relibrary,就可以对输入的文本运行查询字符串。当查询字符串不匹配时,re 库将返回 None,当匹配时,将返回匹配的字符串。

  有些用户可能无法完全理解正则表达式,因此读者可以自己创建一个页面来解释正则表达式的工作原理。写一个足够有趣的文档,让用户对学习和理解正则表达式产生兴趣。制作一个只返回正则表达式有效性的项目很好。但也可以添加替换功能。这意味着应用程序将检查正则表达式的有效性,并允许用户用其他内容替换匹配的字符串。因此,该工具不再只是查询工具,也成为了替换工具。

  三、网址缩短(URLShortener)

  该项目设计的主要目标是缩短 URL。应用程序在缩短 URL 后,再访问缩短的 URL 时将用户重定向到原始 URL。在应用程序中,用户将输入原始 URL,最后获得新的缩短 URL。为此,可以使用 random 和 string 模块的组合来生成缩短版 URL 的字符。

  由于用户将在几天、几个月甚至几年后访问缩短的 URL,因此需要将原始 URL 和缩短的 URL 保存在数据库中。当出现请求时,应用程序会检查 URL 是否存在并重定向到原始 URL,否则会重定向到 404 页面。使用随机字符生成缩短 URL 比长且随机字符的 URL 更好。通过添加功能来自定义 URL,用户就可以自定义生成的 URL。

  自定义 xyz.com/mysite URL 比随机生成的 xyz.com/piojwr URL 更好。

  四、便利贴功能

  该项目的主要目的是让用户记下自己的想法。即每个用户都有自己的笔记,因此应用程序需要具有帐户创建功能。这确保了每个用户的笔记都是私人的。django 带有用户身份验证系统,因此它可能是一个不错的选择。可以使用其他框架,如 bottle 和 flask,但必须自己实现用户身份验证系统。

  由于用户可能需要在不同情境下记录不同的笔记,因此实现用户的笔记分类功能将使应用程序更实用。需要记录一些算法和数据结构,因此需要将不同的笔记划分到各自类别中。需要存储每个用户的信息和笔记,因此数据库成为该项目的重要组成部分。如果想使用 MySQL 数据库或用于 PostgreSQL 数据库的 psycopg2 模块,可以使用 MySQLdb 模块。还可以使用其他模块,但这完全取决于选择使用的数据库。

  用户忘记自己的想法是人之常情,甚至有时会忘记自己记了笔记。可以添加一个功能,提醒用户他们记了笔记。此功能允许用户设置提醒时间,应用程序将通过电子邮件提醒用户。

  五、测验

  这个项目的主要目标是设置测验并让人们作答。因此,用户应该能够设置问题,其他用户应该能够回答这些问题。然后,应用程序将显示最终得分和正确答案。希望用户能够记录他们的分数,则需要实现帐户创建功能。

  创建测试的用户应该能够通过上传文本文件来创建带有问题和答案的测试。文本文件应该能够转换成用户需要的格式,因此应用程序可以将文件转换为测验格式。

  还需要为此项目创建数据库。数据库将存储每个用户的问题、可能的答案、正确的答案和分数。允许用户在测验中添加计时器。这样,测验的创建者可以确定用户在测验中的每个问题上花多长时间。同时拥有测验分享功能也很棒,这样用户可以在其他平台上与朋友分享有趣的测验。

  六、GUI 项目设计:MP3 播放器

  该项目的主要目标是允许用户播放 MP3 和数字音频文件。为了吸引用户,应用程序必须具有简单但美观的用户界面。可以添加一个能列出可用 MP3 文件的界面。还可以为用户列出其他非 MP3 的数字音频文件。用户还希望 MP3 播放器具有显示正在播放的文件信息的界面。其中可以包括文件名、长度、播放时长以及未播放时长(以分钟和秒为单位)。

  Python 具有可以播放音频文件的库,如 pygame,使用几行代码即可处理多媒体文件。还可以查看 pymedia(https://pypi.org/project/PyMedia/)和 simpleaudio。这些库可以处理大量的数字音频文件。包括 MP3 文件和其他格式的音频文件。此外,这些库还有允许用户创建播放列表的功能。为此,需要一个数据库来存储创建的播放列表的信息。Python 的 sqlite3 模块允许使用 SQLite 数据库。

  在这种情况下,SQLite 数据库是更好的选择,因为它是基于文件的,并且比其他 SQL 数据库更容易设置。虽然 SQLite 是基于文件的,但它能比常规文件更好地保存数据。如果上面的都做到了,还可以添加一项功能,以允许 MP3 播放器重复播放当前正在播放的文件,甚至可以实现随机播放。还可以添加增加和降低音频文件播放速度的功能。用户会很喜欢这一功能,因为他们能够以比平时更慢或更快的速度播放音频文件。

  七、闹铃提醒工具

  该项目的主要目标是在一天中的特定时间激活音频信号。因此,定时和音频信号播放是闹铃工具中最重要的部分。闹铃工具应允许用户创建、编辑和删除闹铃。它还应该有一个能列出所有未被删除的闹铃界面。因此,它应列出活动闹铃和闲置闹铃。由于它是一个闹铃,应用程序必须在规定的时间播放音频。用于播放音频的库有 pygame 库等。

  在代码逻辑中,应用程序必须不断检查设置的闹铃时间。到达时间后,它会触发一个播放闹钟铃声的功能。由于应用程序将检查设置的闹铃时间,这意味着应用程序必须将其保存在数据库中。数据库应存储闹铃日期、时间和音频等内容。

  也可以允许用户设置定期闹铃。用户能够设置在每周的某些日子、特定时间响铃。例如,可以在每个星期一下午 2:00 设置闹铃。还可以添加暂停功能,以便用户可以暂停闹钟而不是解除闹钟。

  八、文件管理器

  文件管理器项目的主要目标是为用户提供管理文件的界面。用户需要一个易上手又实用的文件管理器。可以使用 PySimpleGUI 库创建具有一个功能强大的由小部件组成的用户界面,该界面也无需处理大量复杂工作。用户应该能够完成一些简单的任务,如创建新目录或空文本文件。还应该能够复制和移动文件或目录。sys、os 和 shutil 库对此项目非常有用,它们可用于在用户点击时对后台文件执行操作。

  网格视图和列表视图是目前比较受欢迎的视图,因此可以在应用程序中实现这两种视图。用户可以选择适合他们的视图选项。要使文件管理器更高级,可以加入搜索功能。用户无需手动查找即可搜索文件和目录。此外,还可以实现排序功能。用户根据不同的顺序对文件进行排序,例如时间、字母顺序或大小。

  九、记账功能

  该项目的主要目标是跟踪用户的支出。为了向用户提供正确信息,并帮助他们优化支出,需要进行一些统计分析。虽然跟踪费用是关键,但良好的界面也很重要。使用 PySimpleGUI,可以创建一个独特的界面来改善用户体验。诸如 pandas 和 matplotlib 之类的 PyData 库可以帮助设计记账工具。

  pandas 库可用于数据分析,matplotlib 库可用于绘制图形。图表将为用户提供其支出的直观表示,并且可视化通常更容易理解。应用程序将从用户那里获得数据。这里的数据是输入的支出。因此,费用需要存储在数据库中。SQLite 数据库是该项目的一个很好的选择,因为可以快速设置。可以将 sqlite3 模块用于 SQLite 数据库。

  为了让用户从这个项目中受益,他们需要在应用程序中定期输入自己的支出,但人们可能经常遗忘。所以添加一个提醒功能很有效。如此一来,应用程序就会在每天或每周的特定时间发送通知,提醒用户们使用记账工具。

  十、命令行项目设计:通讯录

  该项目的主要目标是保存联系方式。设置可以让用户输入联系人详细信息的命令非常重要。可以使用 argparse 或 clickcommand-line 框架。它们简化了很多复杂的东西,所以只需要关注执行命令时要运行的逻辑即可。此外,还有一些功能需要实现,如删除联系人、更新联系人信息和列出已保存联系人。还可以允许用户使用不同顺序列出联系人,例如字母顺序或联系人创建日期。

  它是一个命令行项目,用 SQLite 数据库就可以很好地保存联系人。SQLite 的设置非常友好。可以将联系人详细信息保存在文件中,但文件不会具有 SQLite 的优势,例如更好的性能和安全性。要在此项目中使用 SQLite 数据库,Python sqlite3 模块将非常有用。还记得数据库是如何存储在用户的计算机上的吗?如果用户文件丢失了会怎么样?这意味着他们也会失去联系方式。

  进一步的挑战是将数据库备份到在线存储平台。为此,可以按特定间隔将数据库文件上传到云。还可以添加允许用户自己备份数据库的命令。这样,如果数据库文件丢失,用户仍然可以访问联系人。应该注意,可能需要某种形式的标识,这样通讯录就可以识别哪个数据库文件属于哪个用户。实现用户身份验证功能是实现此功能的一种方法。

  十一、网站连接检查

  该项目的主要目标是检查网站的状态。因此需要编写用于检查网站状态的代码。可以选择使用 TCP 或 ICMP 进行连接。socket 模块是用于检查的模块。还可以阅读 Python 指南中的 socket 编程。无论是 docopt、click 还是 argparse 框架,都可以添加命令,从而允许用户在要检查的网站列表中添加和删除某网站。用户还应该能够启动工具、停止工具并确定间隔。

  由于必须保存要检查的文件列表,因此可以将其保存在文件(只是网站列表)中,也可以通过 sqlite3 模块使用 SQLite 数据库。该应用程序也可以检查站点的连接状态,并将结果显示在命令行中。但这要求用户继续检查命令行。也可以增加通知功能。通知功能可以在站点状态发生变化时,在后台通过声音提醒用户。需要一个数据库来存储网站的先前状态。这是该工具可以判断状态何时发生变化的唯一方式。

  十二、批量文件重命名工具

  这个项目的主要目标是重命名文件。因此,应用程序需要找到一种操作目标文件的方法。os、sys 和 shutil 库对这个项目很有用。用户将能够使用命名约定重命名目录中的所有文件。因此,他们应该能够自主制定命名约定。如果了解正则表达式的工作原理,那么 regex 模块能辅助匹配所需的命名模式。

  用户可能希望传递命名约定作为命令的一部分,并期望该工具能重命名所有文件,如 myfilesXYZ,其中 XYZ 是数字。他们还应该能够选择要重命名的文件所在的目录。该项目的主要挑战是重命名目录中的所有文件。但是用户可能只需要命名一定数量的文件。因此可以实现一项功能,允许用户选择要重命名的文件数,而不是所有文件。

  请注意,仅重命名一定数量的文件将需要该工具根据字母顺序、文件创建时间或文件大小对文件进行排序,具体取决于用户的要求。

  十三、目录树生成器

  目录树生成器的主要目标是可视化文件和目录之间的关系。os 库在列出目录和所选目录中的文件时非常有用。

诸如 docopt 或 argparse 之类的框架能简化很多内容,使可以专注于为应用程序的逻辑编写代码。在应用程序的逻辑中,可以决定如何表示文件或目录。使用不同的颜色是一个很好的方法。可以使用 colored 库以不同颜色打印文件和目录。

  还应该可以设定目录树生成器的深度。例如,如果一个目录的子目录有 12 级,而只需要用到第五级。还可以让用户自主决定目录树生成器的深度。由于生成的目录树结果将出现在命令行上,因此可以更进一步,让生成器创建目录树的图像,即实现文本转图像的操作。

  新手想掌握Python技能需要通过众多Python项目练习,只有在不断的练习过程中才能掌握编程思维及技术。

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:VBA 单元格基本操作 - 复制 粘贴 区域选择

下一篇:SGAME:一个简单的go游戏服务端框架

您可能感兴趣

  • 怎样学习Python

    在了解了Python的优势、应用、就业前景以及其不可替代的价值之后,相信大家都会有学习python的冲动。那应该如何学习Python呢?买一本书、找一套视频、报名一个培训班?从理论上来讲,无论选择哪种学习方式,都可以掌握Python语言,但实际情况而言,总会因为某些原因导致自己的学习计划搁浅。所以在这里整理本片文章,希望本文能为大家的学习节约更多的时间成本。 1、找到自己学习Python的初...

  • 工作流学习2(书本)

    1、流程引擎的创建。 1.1、ProcessEngineConfiguration的buildProcessEngine方法 使用ProcessEngineConfiguration的create方法可以得到ProcessEngineConfiguration的实例。ProcessEngineConfiguration中提供了一个buildProcessEngine方法,该方法返回一个Pro...

  • Yolo系列详解

    零、图像基本概念 图像表示为二维的矩阵  灰阶图像 0-255,0表示黑色,255表示白色,其余表示灰色。 图像的坐标轴   彩色图像  注意:颜色信息对于任务有时候有用,有时候没用。 一、什么是目标检测 目标检测是计算机视觉中的经典的原子问题,即通过输入的图像来完成物体的检测,它需要解决两个问题: 物体在哪里 物体是什么 目标检测算法的传统实现 sift hog 等算法。这些算法的...

  • 项目沟通管理和项目干系人管理

    在管理项目时,沟通是一个过程,是人们分享信息、表达思想和情感的过程,包括信息的生成、传递、接收、理解和检查。 项目经理的绝大多数时间都用于与团队成员和其他干系人的沟通,无论这些成员或干系人是来自组织内部还是组织外部。 沟通的基本构成,包括如下: 接收者和发送者; 信息; 渠道; 沟通的方式,在进行沟通过程中,要根据沟通目标、参与者的特点选择适合的沟通方式。一般沟通过程所采用的方式分为以下几类...

  • K8s CNI网络最强对比:Flannel、Calico、Canal和W

    介 绍 网络架构是Kubernetes中较为复杂、让很多用户头疼的方面之一。Kubernetes网络模型本身对某些特定的网络功能有一定要求,但在实现方面也具有一定的灵活性。因此,业界已有不少不同的网络方案,来满足特定的环境和要求。 CNI意为容器网络接口,它是一种标准的设计,为了让用户在容器创建或销毁时都能够更容易地配置容器网络。在本文中,我们将集中探索与对比目前最流行的CNI插件:Flan...

  • Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!

    点击上方“阿拉奇学Java”,选择“置顶或者星标” 每天早晨00点00分,与你相约! 往日回顾:贼好用的Java工具类库,GitHub星标13k+,很是厉害! 前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不...

  • 历时两周,将我司的Hadoop2升级到Hadoop3,踩了几个大坑...

    文末有赠书福利 继一次超万亿规模的Hadoop NameNode性能故障排查过程之后,虽然解决了Hadoop2.6.0版本在项目中的问题,但客户依然比较担心,一是担心版本过老,还存在其他未发现的问题;二是按目前每天近千亿条的数据增长,终究会遇到NameNode的第二次瓶颈。 基于上述原因,我们决定将当前集群由Hadoop2.6.0版本升级到Hadoop3.2.1版本,且启用联邦模式。历时2周...

  • python学习001

    前言: 1、运维/网络为什么要学习编程? (1)运维/网络中所有已学的命令其实都是已经编制好的程序,创造命令就是编写程序; (2)在云计算领域中,繁琐的命令配置已经不能满足日常需求,深入发展是需要贴近业务/研发的,因此就要能够创造命令/编写程序/开发; (3)网络安全领域中,可以深入理解渗透、攻防等细节,Kali-Linux ,SDN(命令对应网络)夯实技术; (4)对于校招而言,大型互联网...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。