Python 中级Python程序员有哪些好的项目?
在本篇文章中,我们将学习一些适合中级Python程序员的好项目。
这些项目既不太困难也不太简单。在开发这些项目时会遇到一些挑战, 但你会在解决问题时度过美好的时光。我们将项目分成三类:
- 网络应用 - 通常,开发人员负责应用程序的前端和后端组件。作为Python开发人员,您的主要关注点应该在后端,即实现所有业务逻辑的地方。可以使用一些Python Web框架,如Django和Flask。
-
桌面GUI - 可以使用Python创建自己的桌面图形用户界面应用程序。PySimpleGUI是一个用户友好的桌面应用程序框架。PyQt5是另一个复杂和高级的GUI框架,尽管它有一个陡峭的学习曲线。
-
命令行 - 这些应用程序在控制台窗口中运行。可以使用docopt、argparse和click框架创建应用程序。
阅读更多:Python 教程
Web项目创意
您将在这个主题中发现一些网络项目的创意。这些项目创意分为两类——实用工具和教育工具。
以下是一些项目创意——
- URL缩短工具
- 测验应用
- 笔记分享
URL缩短工具
您是否熟悉像bit.ly和TinyURL这样的工具?这些服务将URL缩短,并使它们更容易记忆。长的URL含有复杂的字符,难以记忆。这些服务通过删除字符或字母缩短URL,并向用户返回一个新的更短的URL。
技术细节
这个程序的主要目的是缩短URL,并且当用户点击缩短的URL时,应该将其发送到原始的URL。您可以使用随机和字符串模块的混合来生成缩写URL的字符。您必须将原始的和缩写的URL存储在数据库中,以便当用户访问缩短的URL(几天、几个月甚至几年后)时,程序会检查数据库并重定向至原始URL(若URL存在),否则重定向到一个404页面。
附加挑战
您可以通过包括一个自定义URL选项为用户提高此应用程序的可用性。这样用户可以更容易地记住他们创建的自定义URL。
实际应用举例
测验应用
测验应用程序会向用户提问并期望他们提供正确的答案。将测验应用程序视为一种问卷调查。特殊用户,称为管理员,将能够使用测验应用程序创建测试,使普通用户回答问题并评估其对测验中概念的理解。
技术细节
该项目的主要目标是创建测验,并使人们回答问题。因此,用户应该能够提问,其他用户应该能够回答问题。该应用程序将提供总分以及正确的答案。如果要让用户跟踪自己的分数,则可能需要构建一个帐户创建功能。用户应该能够通过上传一个文本文件来简单地构建具有问题和答案的测试。文本文件将按您指定的格式进行,使应用程序能够将其从文件转换为测验。
附加挑战
允许用户设置定时器,使测试更困难。这使测试开发人员可以决定每个问题在测验中用户应该花费多少秒或分钟。
同时还需一个测试共享工具,使用户可以在其他平台上分享有趣的测验给朋友。
真实生活示例
短笔记网站
我们每天都有很多点子,由于我们忙碌的日程或其他原因,很容易忘记这些想法(甚至是关键的想法或思考)。是否设计一款可以在线创建笔记,以便轻松记住自己的想法的应用程序会很不错?您可以使用Python创建一个“短笔记”的应用程序,用户可以在其中列出其想要记住的任何东西,并且该列表将可以从任何地方访问(因为它在数字平台上)。
技术细节
该项目的主要目标是允许用户保存其想法。每个用户都将拥有自己的私人笔记,要创建私人笔记,必须创建具有身份验证功能的帐户创建特性。您可以使用Django框架,该框架包含身份验证系统,但是,如果您使用的是瓶子或flask,则必须自己实现用户身份验证。
您还可以包括一个允许用户分类笔记的功能。用户将能够将其笔记分成多个类别。例如,用户可以选择一个用于编程语言,另一个用于数据结构和算法,还有一个用于数据库。
如果您想使用数据库来存储此应用程序的信息,则可以使用与选择的数据库相对应的MySQLdb模块(如果使用MySQL数据库)或psycopg2模块(如果选择PostgreSQL数据库)。也可以使用其他模块,不过这取决于您为应用程序选择的数据库。
额外的挑战
我们经常忘记我们在某个地方创建了重要的笔记,然后期望有人提醒我们这些笔记。因此,您可以在此应用程序中包括一个提醒功能。此功能允许用户选择提醒的时间,并在笔记方面收到电子邮件通知。
真实生活示例
GUI项目
以下是项目的想法 –
- MP3播放器
- 闹钟工具
- 文件管理器
- 开销跟踪器
MP3播放器
没有播放器,就无法播放音频文件的内容。音频文件是数字数据,您可以使用Python创建一个模拟物理MP3播放器的工具软件。用户将能够使用此软件在桌面、笔记本电脑或计算机上播放MP3文件。
技术细节
目标是提供MP3软件,允许用户听取MP3和其他数字音频文件。您必须专注于创建视觉上吸引人的用户界面,以增加用户参与度。该界面将显示可用MP3文件的列表。用户还可以选择不是MP3的其他数字音频文件。用户还可以查看正在播放的文件的信息。您可以包括信息,例如:
- 文件名
- 长度
- 播放时间(分钟和秒数)
- 未播放时间(分钟和秒数)
Python的pygame、pymedia和simpleaudio库可用于处理MP3文件和其他数字音频文件。您只需几行代码就可以操作多媒体文件。您还可以包括一个允许用户制作播放列表的功能。SQLite数据库的sqlite3模块可用于保存创建的播放列表的信息。
附加挑战
包括一个功能,允许用户重复播放文件或对要播放的文件列表进行混洗。您还可以添加一个函数,允许用户选择音频文件播放的速度(增加/减少)。
真实生活的例子
闹钟工具
正如谚语所说,“时间和潮水不等待任何人”。但是我们的生活方式非常繁忙,很难掌握时间。需要提醒来跟踪时间。
这就是Alarm Tool的作用。闹钟是一种设备,它会在特定情况下产生声音或视觉信号。这个Alarm Tool项目的概念旨在将闹钟作为软件来创建。当满足给定条件时,Alarm Tool会发出声音信号。在此情况下,固定时间是某种情况。
用户可以使用Alarm Tool设置闹钟,以在一天中的特定时间提醒他们的事情。
Alarm Tool项目将在用户的笔记本电脑或台式设备上运行,无需购买物理计时器。
技术细节
该项目的主要目标是在一天中的特定时间激活音频信号。因此,Alarm Tool最关键的方面是定时和要播放的音频信号。
用户应该能够使用Alarm Tool添加、编辑和删除闹钟。它还应该包括一个用户界面,列出未被用户擦除的所有警报。因此,它应该显示活动和非活动警报。
因为它是一个闹钟,所以程序必须在指定的时间播放铃声。有可用的音频库,如pygame库。
程序必须继续在代码逻辑中检查设置的闹钟时间。当时间到达时,会触发一个函数来播放闹钟铃声。
由于应用程序将检查已设置的闹钟时间,因此必须将闹钟保存在数据库中。应在数据库中保存闹钟日期、时间和铃声位置。
附加挑战
您还可以允许用户设置重复闹钟作为额外功能。他们将能够编程闹钟,以在每周特定的一天的特定时间发出声音。例如,可以设置每个星期一下午2:00的闹钟。
您还可以包括一个“贪睡”选项,以便您的用户可以打盹而不是仅仅拒绝它们。
真实生活的例子
命令行项目
本节包含命令行的项目创意。所提到的项目创意可以归类为实用工具。
以下是一些项目创意 –
- 站点连接性检查器
- 文件重命名工具
- 联系人簿
- 目录树生成器
站点连接性检查器
当你访问一个URL时,你期望你的浏览器会显示请求的页面。然而,这并不总是实际情况。网站随时可能会出现问题,所以你可能无法得到预期的结果。相反,你会看到错误信息。你可以一直尝试无法访问的网站直到重新上线并获取你所需要的信息。
这就是项目网站连通性检查器的作用。网站连通性检查器会访问一个URL并提供URL的状态:在线或不在线。网站连通性检查器将返回每个URL访问的结果,每次都是定期的。
不需要手动访问URL,网站连通性检查器可以为你处理所有的事情。你只需要通过这种方式获取检查结果,而不用花时间等待网站加载。
技术细节
该项目的主要目标是检查网站的状态。因此,您必须创建用于检查网站状态的代码。
您可以选择使用TCP或ICMP进行连接。socket模块用于检查。Python的Socket编程也可以阅读(指南)。
您可以添加命令以允许用户使用您喜欢的框架(无论是docopt、click还是argparse框架)将站点添加到待检查站点列表中。
用户还应该能够启动和停止该工具并设置时间间隔。
由于您需要记录要检查的文件列表,因此您可以将它保存在文件中(只是一个站点列表)或使用SQLite数据库,使用sqlite3模块。
实际生活中的例子
文件重命名工具
我们经常按特定约定重命名目录中的文件。例如,File001.jpg,File002.jpg,File003.jpg等。手动执行此操作可能会很繁琐、费时。为了避免手动操作,则可以编写一个重命名大量文件的工具。
技术细节
主要目标是设计一个能够在几秒钟内无误重命名文件的工具。您可以使用Python的os、sys和shutil模块对目标文件进行重命名。用户应该能够使用他们喜欢的命名约定来重命名目录中的所有文件。如果您了解如何使用Regex工作,可以使用它来帮助匹配所需的名称模式。如果用户指定了命名约定,例如 演示文件 ,则该工具应将文件重命名为 demofiles345 ,其中345是一个数字。
额外的挑战
实现一个功能,让用户只选择一组文件进行重命名,而不是所有文件。根据用户的喜好,实用工具将按字母顺序、文件创建时间或文件大小对文件进行排序。
实际生活中的例子
结论
在本文中,我们学习了各种中级项目的细节和示例,这些项目将帮助您实时了解不同的Python中级概念。
极客教程