加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

给中级Python开发者的13个练手项目,适合你不?

发布时间:2019-08-30 17:03:40 所属栏目:优化 来源:机器之心
导读:副标题#e# Web 项目设计 内容聚合器(Content Aggregator) 1. 技术细节 该项目设计的主要目标是聚合内容。首先,我们需要知道内容聚合器从哪些站点获取内容。然后,使用请求库来发送 HTTP 请求,并使用 BeautifulSoup 解析和抓取站点的必要内容。 该应用程序
副标题[/!--empirenews.page--]

 Web 项目设计

内容聚合器(Content Aggregator)

1. 技术细节

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

给中级Python开发者的13个练手项目,适合你不?

该应用程序可以将其内容聚合作为后台进程进行实现。celery 或 apscheduler 等库可以提供帮助。建议尝试 apscheduler。它非常适用于小型后台进程。

从各个站点抓取的内容需要进行保存。因此,需要使用数据库。

2. 额外挑战

对于更严峻的挑战,可以通过以下网站进行学习并获得更多信息:https://realpython.com/python-web-scraping-practical-introduction/

还可以在网站上订阅内容聚合文章。每天结束时,内容聚合器会将当天的文章发送到用户的电子邮箱。

正则表达式查询工具

1. 技术细节

这类项目的主要目的是判别用户输入的查询字符串的有效性。可以让它给出有效和无效的判别,例如「查询字符串有效」和「查询字符串无效」,以绿色显示有效,以红色显示无效。

不必从头开始构造查询工具。使用 Python 的标准 relibrary,就可以对输入的文本运行查询字符串。当查询字符串不匹配时,re 库将返回 None,当匹配时,将返回匹配的字符串。

有些用户可能无法完全理解正则表达式,因此读者可以自己创建一个页面来解释正则表达式的工作原理。写一个足够有趣的文档,让用户对学习和理解正则表达式产生兴趣。

2. 额外挑战

制作一个只返回正则表达式有效性的项目很好。但也可以添加替换功能。这意味着应用程序将检查正则表达式的有效性,并允许用户用其他内容替换匹配的字符串。因此,该工具不再只是查询工具,也成为了替换工具。

网址缩短(URL Shortener)

1. 技术细节

该项目设计的主要目标是缩短 URL。应用程序在缩短 URL 后,再访问缩短的 URL 时将用户重定向到原始 URL。

在应用程序中,用户将输入原始 URL,最后获得新的缩短 URL。为此,可以使用 random 和 string 模块的组合来生成缩短版 URL 的字符。

由于用户将在几天、几个月甚至几年后访问缩短的 URL,因此需要将原始 URL 和缩短的 URL 保存在数据库中。当出现请求时,应用程序会检查 URL 是否存在并重定向到原始 URL,否则会重定向到 404 页面。

2. 额外挑战

使用随机字符生成缩短 URL 比长且随机字符的 URL 更好。通过添加功能来自定义 URL,用户就可以自定义生成的 URL。

毫无疑问,自定义 xyz.com/mysite URL 比随机生成的 xyz.com/piojwr URL 更好。

便利贴功能

1. 技术细节

该项目的主要目的是让用户记下自己的想法。即每个用户都有自己的笔记,因此应用程序需要具有帐户创建功能。这确保了每个用户的笔记都是私人的。

django 带有用户身份验证系统,因此它可能是一个不错的选择。你可以使用其他框架,如 bottle 和 flask,但你必须自己实现用户身份验证系统。

由于用户可能需要在不同情境下记录不同的笔记,因此实现用户的笔记分类功能将使应用程序更实用。

例如,你可能需要记录一些算法和数据结构,因此需要将不同的笔记划分到各自类别中。

你需要存储每个用户的信息和笔记,因此数据库成为该项目的重要组成部分。如果想使用 MySQL 数据库或用于 PostgreSQL 数据库的 psycopg2 模块,可以使用 MySQLdb 模块。还可以使用其他模块,但这完全取决于你选择使用的数据库。

2. 额外挑战

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

测验

1. 技术细节

这个项目的主要目标是设置测验并让人们作答。因此,用户应该能够设置问题,其他用户应该能够回答这些问题。然后,应用程序将显示最终得分和正确答案。

如果希望用户能够记录他们的分数,则需要实现帐户创建功能。

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

你还需要为此项目创建数据库。数据库将存储每个用户的问题、可能的答案、正确的答案和分数。

2. 额外挑战

可以允许用户在测验中添加计时器。这样,测验的创建者可以确定用户在测验中的每个问题上花多长时间。

同时拥有测验分享功能也很棒,这样用户可以在其他平台上与朋友分享有趣的测验。

GUI 项目设计

MP3 播放器

1. 技术细节

该项目的主要目标是允许用户播放 MP3 和数字音频文件。为了吸引用户,应用程序必须具有简单但美观的用户界面。

可以添加一个能列出可用 MP3 文件的界面。还可以为用户列出其他非 MP3 的数字音频文件。

用户还希望 MP3 播放器具有显示正在播放的文件信息的界面。其中可以包括文件名、长度、播放时长以及未播放时长(以分钟和秒为单位)。

Python 具有可以播放音频文件的库,如 pygame,使用几行代码即可处理多媒体文件。还可以查看 pymedia(https://pypi.org/project/PyMedia/)和 simpleaudio。

这些库可以处理大量的数字音频文件。包括 MP3 文件和其他格式的音频文件。

此外,这些库还有允许用户创建播放列表的功能。为此,需要一个数据库来存储创建的播放列表的信息。Python 的 sqlite3 模块允许使用 SQLite 数据库。

在这种情况下,SQLite 数据库是更好的选择,因为它是基于文件的,并且比其他 SQL 数据库更容易设置。虽然 SQLite 是基于文件的,但它能比常规文件更好地保存数据。

2. 额外挑战

如果上面的都做到了,你还可以添加一项功能,以允许 MP3 播放器重复播放当前正在播放的文件,甚至可以实现随机播放。

还可以添加增加和降低音频文件播放速度的功能。用户会很喜欢这一功能,因为他们能够以比平时更慢或更快的速度播放音频文件。

闹铃提醒工具

1. 技术细节

该项目的主要目标是在一天中的特定时间激活音频信号。因此,定时和音频信号播放是闹铃工具中最重要的部分。

闹铃工具应允许用户创建、编辑和删除闹铃。它还应该有一个能列出所有未被删除的闹铃界面。因此,它应列出活动闹铃和闲置闹铃。

由于它是一个闹铃,应用程序必须在规定的时间播放音频。用于播放音频的库有 pygame 库等。

在代码逻辑中,应用程序必须不断检查设置的闹铃时间。到达时间后,它会触发一个播放闹钟铃声的功能。

由于应用程序将检查设置的闹铃时间,这意味着应用程序必须将其保存在数据库中。数据库应存储闹铃日期、时间和音频等内容。

2. 额外挑战

你也可以允许用户设置定期闹铃。用户能够设置在每周的某些日子、特定时间响铃。例如,可以在每个星期一下午 2:00 设置闹铃。

还可以添加暂停功能,以便用户可以暂停闹钟而不是解除闹钟。

文件管理器

1. 技术细节

文件管理器项目的主要目标是为用户提供管理文件的界面。用户需要一个易上手又实用的文件管理器。

可以使用 PySimpleGUI 库创建具有一个功能强大的由小部件组成的用户界面,该界面也无需处理大量复杂工作。

用户应该能够完成一些简单的任务,如创建新目录或空文本文件。还应该能够复制和移动文件或目录。

sys、os 和 shutil 库对此项目非常有用,它们可用于在用户点击时对后台文件执行操作。

网格视图和列表视图是目前比较受欢迎的视图,因此你可以在应用程序中实现这两种视图。用户可以选择适合他们的视图选项。

2. 额外挑战

要使文件管理器更高级,可以加入搜索功能。用户无需手动查找即可搜索文件和目录。

此外,还可以实现排序功能。用户根据不同的顺序对文件进行排序,例如时间、字母顺序或大小。

记账功能

1. 技术细节

该项目的主要目标是跟踪用户的支出。为了向用户提供正确信息,并帮助他们优化支出,需要进行一些统计分析。

虽然跟踪费用是关键,但良好的界面也很重要。使用 PySimpleGUI,你可以创建一个独特的界面来改善用户体验。

诸如 pandas 和 matplotlib 之类的 PyData 库可以帮助设计记账工具。

pandas 库可用于数据分析,matplotlib 库可用于绘制图形。图表将为用户提供其支出的直观表示,并且可视化通常更容易理解。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读