📜  面向中级开发人员的 7 个很酷的Python项目创意

📅  最后修改于: 2021-10-21 05:18:33             🧑  作者: Mango

Python在编程世界中每个人都熟悉这种语言的流行。学习Python和构建项目对于开发人员来说总是一种奇妙的体验。这种语言在当今时代确实值得大肆宣传,如果它可以解决许多现实世界的问题,为什么不呢。好吧,每个程序员的旅程都是从学习任何编程语言的基础知识开始的,一旦他们继续前进,他们就会意识到使用相同的语言构建项目的重要性。他们变得好奇,想知道某些应用程序中的事物是如何工作的,并且他们试图通过构建一些很酷的项目来获得一些实践经验以扩展他们的知识。如果您是一名开发人员,那么学习一种语言的语法是不够的……了解如何应用语言的概念来解决一些现实世界的问题或挑战很重要。好吧, Python也不例外。

7-Cool-Python-Project-Ideas-for-Intermediate-Developers

Python是一种非常强大的语言,最棒的是它很容易学习。你可以使用这种语言构建很多很酷的东西。所以不要只停留在理论概念上。一旦你了解了这门语言的基础知识,就可以继续探索,找出一些好的项目进行工作,并获得一些实践经验。在编程中永远记住,获得实践经验是巩固知识的最佳方式。今天在这篇博客中,我们将讨论一些您可以作为中级Python开发人员进行的项目。这些项目不太难也不太容易。在构建这些项目时会遇到一些挑战,你会非常喜欢解决这些问题。我们将项目分为三类……

  1. Web 应用程序:基本上开发人员负责构建应用程序的前端和后端部分。作为一名Python开发人员,您的主要关注点将是所有业务逻辑得到实现的后端部分。您可以使用一些Python Web 框架,例如 Django 和 Flask。
  2. 桌面 GUI:您可以使用Python制作自己的桌面图形用户界面应用程序。 PySimpleGUI是桌面应用程序的用户友好框架之一。 PyQt5是另一个先进的强大 GUI 框架,但它具有陡峭的学习曲线。
  3. 命令行:命令行应用程序在控制台窗口中工作。您可以使用docoptargparseclick框架来构建您的应用程序。

现在让我们一一讨论以上三个类别的一些项目……

网络项目

1. 网址缩短工具

项目详情:你熟悉 bit.ly 和 TinyURL 等工具吗?这些工具缩短了 URL 并使其易于记忆。长 URL 充满了难懂的字符,而且不容易记住。这些服务会减少 URL 中的字符或字母,并向用户返回一个新的缩短 URL。例如:https://practice.geeksforgeeks.org/explore/?category%5B%5D=Arrays&page=1 可以转换成https://tinyurl.com/y92ysnmb。所以这里的目标是构建类似的应用程序。

技术细节:这个应用程序的主要目标是缩短 URL,当用户访问缩短的 URL 时,他/她必须重定向到原始 URL。要为缩短的 URL 生成字符,您可以使用随机字符串模块的组合。您需要将原始 URL 和缩短的 URL 保存在数据库中,这样每当用户访问缩短的 URL 时(几天、几个月甚至几年之后),应用程序都会检查数据库,如果 URL 存在,则重定向到原始 URL,否则重定向到 404 页面。

附加挑战:您可以通过为用户添加自定义 URL 选项的功能,使此工具更加用户友好。用户更容易记住自己生成的自定义 URL。

现实生活中的例子:

  • 比特利
  • 小网址

2. 固定笔记

项目详情:我们一整天都会有很多想法,这是人类的一个共同天性,我们很容易因为繁忙的日程或其他原因忘记事情(甚至是重要的想法或想法)。为了方便地记住事情,制作一个应用程序来在线记录我们的想法不是一个好主意吗?使用Python,您可以构建一个 Pin Your Note 应用程序,用户可以在其中列出他/她想要记住的所有内容,并且可以从任何地方访问该列表(因为它位于数字平台上)。

技术细节:这个项目的主要目的是让用户保存他们的想法。每个用户都有自己的私人笔记,要创建私人笔记,您需要创建具有身份验证的帐户创建功能。您可以使用其身份验证系统附带的 Django 框架,但如果您使用的是 Bottle 或 Flask,则必须自己实现用户身份验证。

您还可以添加允许用户对笔记进行分类的功能。通过这种方式,用户将能够在不同的类别下分割他们的笔记。例如,用户可以创建一个用于编程语言的部分,一个用于数据结构和算法,另一个用于数据库。

如果我们谈论使用此应用程序的数据库来存储信息,那么如果您选择 MySQL 数据库或 PostgreSQL 数据库的psycopg2模块,则可以使用MySQLdb模块。您也可以使用其他模块,但这取决于您为应用程序选择的数据库。

额外挑战:很多时候我们忘记了我们已经在某处创建了重要的笔记,而那个时候我们希望有人可以提醒我们这些笔记。因此,您可以在此应用中添加提醒功能。此功能将允许用户设置提醒时间,他/她将通过电子邮件收到有关笔记的通知。

现实生活中的例子:

  • 钉住
  • 注意.ly

3. 测验申请

项目详情:测验总是有助于测试知识,识别错误并纠正这些错误。参加在线测试是完全理解这些概念的最佳方式。使用Python,您可以创建一个测验应用程序,该应用程序将为用户列出一系列问题,并且允许用户回答这些问题。将测验应用程序视为一种问卷调查。

技术细节:主要目标是设置测验(一系列问题),人们必须回答这些问题。该应用程序将显示最终分数和问题的正确答案。在这里您需要考虑管理员用户,因为只有管理员才能创建测验或为其他用户(将参加测验的人)设置问题。

您需要实现帐户创建功能来保存个人分数记录。管理员用户应该能够通过简单地上传文本文件来创建带有问题和答案的测试。您可以为文本文件选择任何格式,但应用程序应将此文件转换为测验。在您的数据库中,您需要存储每个用户的问题、可能的答案、正确答案和分数。如果为 PostgreSQL 数据库选择 MySQL 数据库或psycopg2模块,则可以使用MySQLdb模块。您也可以使用其他模块,但这取决于您为应用程序选择的数据库。

附加挑战:添加一项功能,允许用户向测验添加计时器。通过这种方式,测验的创建者(管理员用户)可以确定用户应该在测验中的每个问题上花费多少秒或分钟。您还可以添加测验分享功能,让用户可以在其他平台上分享有趣的测验。

现实生活中的例子:

  • 卡胡特
  • 我的测验

图形用户界面项目

1. MP3 播放器

项目详情:没有播放器就无法播放音频文件的内容。音频文件是数字文件,您可以通过使用Python构建工具 MP3 播放器来展示您的技能。您需要构建一个模拟物理 MP3 播放器的 MP3 播放器软件。使用此软件,用户将可以在台式机、笔记本电脑或计算机上播放 MP3 文件。

技术细节:目标是构建一个 MP3 软件,允许用户播放 MP3 和其他数字音频文件。您需要专注于构建漂亮的用户界面,以更好地吸引用户。该界面将列出可用的 MP3 文件。用户还可以选择列出非 MP3 的其他数字音频文件。此外,用户应该能够看到正在播放的文件的信息。您可以包含一些信息,例如……

  • 文件名
  • 它的长度
  • 播放量(分钟和秒)
  • 未播放量(分和秒)

为了处理MP3文件和其他数字音频文件,你可以使用pygame的,pymediasimpleaudio库在Python。这些库允许您在几行代码中处理多媒体文件。您还可以添加允许用户创建播放列表的功能。要存储创建的播放列表的信息,您可以使用 SQLite 数据库的sqlite3模块。

附加挑战:添加一项功能,允许用户重复当前播放的文件,甚至随机播放要播放的文件列表。您还可以包含一项功能,允许用户提高和降低音频文件的播放速度。

现实生活中的例子:

  • 音乐蜜蜂
  • Foobar2000

2.闹钟

项目详细信息:我们在日常生活中使用闹钟,提供有关某种情况的音频或视觉提醒。您需要使用Python构建一个警报软件,该软件允许用户为特定条件设置时间,当满足条件时,它应该发出音频信号。此工具将在用户的笔记本电脑或台式机设备上运行。

技术细节:在这个项目中,您需要主要关注警报的时间和音频信号,因为主要目标是在一天中的特定时间激活音频信号。添加允许用户创建、编辑和删除警报的功能。此外,界面应显示所有活动和非活动警报。对于音频信号或提醒,您需要在软件中设置音调。您可以使用pygame库播放音频。您还需要在数据库中保存有关警报的信息,例如……警报日期、时间和音调位置。

附加挑战:添加允许用户设置重复警报的功能。使用此功能,用户将能够设置闹钟,在每周的某些日子的某个时间响起。例如,可以在每周六上午 11:00 设置闹钟。您还可以在此应用程序中添加小睡功能。

现实生活中的例子:

  • 免费闹钟
  • 定时器

命令行项目

1. 站点连接检查器

项目详情:当我们访问一个 URL 或一个网站时,大多数时候我们会在浏览器上获取我们需要的任何信息。有时网站可能会关闭,并且可能会在浏览器中显示一些错误消息。这可能是由于某些服务器问题而发生的。在这里,您可以展示您的技能并构建站点连接检查器。站点连接检查器会提供访问 URL 的网站状态。它定期访问 URL 并返回每次访问的结果。您可以使用此工具从一个页面监控多个网站,而不是手动访问 URL 来检查站点状态。

技术细节:主要目标是检查网站的状态。要实现此功能,您可以使用 TCP 或 ICMP 进行连接。 Python的套接字编程将帮助您建立连接。在Python使用套接字模块并了解有关套接字编程的更多信息,请访问链接Python套接字或Python网络编程。用户应该能够从要检查的站点列表中添加和删除站点。您可以使用docoptclickargparse框架为这些功能添加命令。请记住,用户应该能够启动工具、停止工具并确定时间间隔。您还需要保存检查的文件列表,为此您可以使用 SQLite 数据库的sqlite3模块。

附加挑战:用户需要不断检查命令行以检查站点的状态。为避免这种情况,您可以添加通知功能(例如:在后台播放的声音)以在站点状态发生变化时提醒用户。在数据库中维护站点的先前状态,因为这是该工具可以判断状态何时更改的唯一方法。

现实生活中的例子:

  • 上升趋势
  • 站点24X7

2.文件重命名工具

项目详情:很多时候我们需要根据一定的约定重命名我们目录中的文件。 比如File001.jpg、File002.jpg、File003.jpg,等等。手动执行此任务可能会重复且乏味。为了避免这种手动工作,您可以创建一个工具来重命名大量文件。

技术细节:主要目标是 创建一个工具来在几秒钟内重命名文件而不会出错。要重命名目标文件,您可以使用Python提供的ossysshutil库。用户应该能够通过他们自己选择的命名约定来重命名目录中的所有文件。如果您知道 regex 是如何工作的,那么regex模块将帮助匹配所需的命名模式。如果用户将命名约定(例如 myfiles)作为命令的一部分传递,则该工具应重命名文件,例如 myfiles123,其中 123 是一个数字。

附加挑战:实现一项功能,允许用户 只选择一定数量的文件进行重命名,而不是所有文件。对于此功能,该工具将根据字母顺序、文件创建时间或文件大小对文件进行排序,具体取决于用户的要求。

现实生活中的例子:

  • 改名
  • 任命令