python实际程序_掌握Python第一课:从构建实际应用程序开始!

点击上方关注,All in AI中国

作者:Dhrumil Patel

如果没有足够的资源,互联网的运行有时是一团糟。而学习一门新的编程语言可能是一种繁琐乏味的工作。在这种情况下,大大都学习者城市抛却或者他们选择学习其他的知识。所以,在我们开始学习之前,我向你包管,这不是你平时上网时偶然发现的任何其他"学习python编程"的那种帖子。在本系列的10篇文章中,我们要做的是使用python构建10个真实世界的应用程序,并且随着我们学习的进展,采取其他重要和需要的工具来掌握我们的数据科学python技能。

掌握Python第一课:从构建实际应用程序开始!-1.jpg (43.4 KB, 下载次数: 0)

2018-11-20 10:11 上传

学习编程语言是很重要的。无论看起来何等艰难,你必须要从头开始。所以如果你没有任何使用python编程的实践经验,请不要担忧,只要你了解python的基础知识就可以了。

我们要构建的第一个应用程序是字典:交互式字典。你可能知道这很容易。但千里之行,始于脚下,所以你必须迈出第一步。现在,字典会做什么?它将检索用户输入的单词的界说,这就是字典的作用,对吧?除此之外,如果用户在输入单词时呈现了拼写毛病,应用程序将建议使用最接近的单词,并提示道,"你的意思是这个吗?",如果单词有多个界说,则检索所有单词。现在看起来不那么容易,是吧?让我们来看看。

掌握Python第一课:从构建实际应用程序开始!-2.jpg (49.14 KB, 下载次数: 0)

2018-11-20 10:11 上传

在这篇文章的最后,你会感触感染和这个人跃入水中之后感触感染一样。因为学习或体验新事物让我们感应兴奋和惊奇。这就是你今天要做的事情。

注 - 除学习如何构建应用程序之外,还要密切注意代码的编写体例。清洁代码同样也很重要。

步调1 - 数据

要知道字典是如何工作的,我们必须了解它将用来执行这些动作的数据。所以,让我们开始吧。这里的数据是JSON格式的。如果你已经知道JSON是什么,请跳过下面几行。可是,另一方面,如果你第一次听到JSON这个词,或者你需要一点点温习,我就能帮到你了。我建议查看我们将用于更好地理解JSON格式的数据。您可以在这里找到数据。

https://www.kaggle.com/borrkk/dictionary

这是一个有趣的事实,截至2017年,每秒都在产生大约2,500,000,000,000,000,000(2.5艾字节,Quintillion)字节的数据。

JSON或JavaScript Object Notation是用于构造数据的最小可读(对人和计算机都是如此)格式。它主要由两部分组成:一个键和一个与键相关的值。我们仅从我们的数据中获取示例,下面是键/值对。键是"abandoned industrial site(烧毁的工业用地)",单词和值是"Site that cannot be used for any purpose, being contaminated by pollutants(不克不及用于任何目的的场地,被污染物污染)"的界说。要了解有关JSON的更多信息,请参阅这篇文章。

掌握Python第一课:从构建实际应用程序开始!-3.jpg (14.83 KB, 下载次数: 0)

2018-11-20 10:11 上传

现在让我们从代码开始。首先,我们导入JSON库,然后我们使用该库的load(加载)体例来加载.json格式的数据。这里重要的是我们以.json格式加载数据,但它将作为python'dictionary'存储在"data"变量中。如果你不了解python词典,请将其视为存储库。它与JSON格式几乎相同,并且遵循相同的键值格式。

掌握Python第一课:从构建实际应用程序开始!-4.jpg (33.35 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调1 - 数据

加载数据后,让我们建立一个函数,它将获取该单词,并在数据中查找该单词的界说。这比较简单。

掌握Python第一课:从构建实际应用程序开始!-5.jpg (24.44 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调1 - 数据(输出)

步调2- 检查不存在的单词

使用基本的if-else语句将帮忙检查不存在的单词。如果数据中没有该单词,只需告知用户即可。在我们的例子中,它将打印"这个词不存在,请仔细检查它"。

掌握Python第一课:从构建实际应用程序开始!-6.jpg (39.63 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调2- 检查不存在的单词

掌握Python第一课:从构建实际应用程序开始!-7.jpg (25.7 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调2-- 检查不存在的单词(输出)

步调3 - 区分巨细写

每个用户都有自己的写作体例。虽然有些人可能会采取小写,但有些人可能想在题目中用采大写,我们的目标是单词的输出必须连结不变。例如'Rain'和'rain'将提供相同的输出。为了做到这一点,我们将把用户输入的单词全部转换为小写,因为我们的数据具有相同的格式。我们将使用Python自己的lower()体例来实现。

案例1 - 为了确保程序返回以大写字母开头的单词的界说(例如Delhi, Texas)),我们还将检查else-if条件下的题目中的巨细写字母。

案例2 - 为了确保程序返回首字母缩写词的界说(例如USA,NATO),我们也将检查大写字母。

掌握Python第一课:从构建实际应用程序开始!-8.jpg (29.57 KB, 下载次数: 0)

2018-11-20 10:11 上传

掌握Python第一课:从构建实际应用程序开始!-9.jpg (37.1 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调3- 区分巨细写

掌握Python第一课:从构建实际应用程序开始!-10.jpg (23.96 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调3-区分巨细写(输出)

你的字典已准备好为其基本目的办事,检索界说。但让我们更进一步。当你在搜索栏中输入毛病时,谷歌建议你写出正确的单词时,你觉得它很酷吗?

掌握Python第一课:从构建实际应用程序开始!-11.jpg (96.08 KB, 下载次数: 0)

2018-11-20 10:11 上传

显示'medium'而不是'mediium'的结果

如果可以对我们的字典做同样的事情怎么办?这很酷,对吗?在执行此操作之前,请执行步调5,让我们在步调4中了解其背后的机制。

步调4- 最接近的匹配

现在,如果用户在输入单词时呈现了拼写毛病,你可能想要建议最接近的单词,并询问他们是否需要这个单词的含义。我们可以使用Python的库difflib来做到这一点。有两种体例可以做到这一点,我们需要对这两种体例进行一下了解,然后使用有效的体例。

体例1 - 序列匹配器

让我们来了解这种体例。首先,我们将从中导入库和fetch(获取)体例。 SequenceMatcher()函数总共需要3个参数。第一个是垃圾,这意味着如果单词有空格或空行,在我们的例子中是没有。第二个和第三个参数是你想要找到相似之处的单词。并且附加比率体例将给出数字的结果。

掌握Python第一课:从构建实际应用程序开始!-12.jpg (40.72 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调4.1 - 序列匹配器

掌握Python第一课:从构建实际应用程序开始!-13.jpg (16.6 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调4.1 - 序列匹配器(输出)

如你所见,"rainn"和"rain"之间的相似度为0.89,即89%。这是一种体例。然而,在同一个库中有另一种体例可以直接获取与该单词的紧密匹配,不涉及数字。

体例2 - 获取近似匹配

该体例的工作原理如下,第一个参数固然是你要查找其匹配项的单词。第二个参数是要匹配的单词列表。第三个暗示你想要几多匹配作为输出。而最后一个被截止。你还记得我们在之前的体例中获得过一个数字吗?0.89?截止使用该数字来知道何时停止将单词视为近似匹配(0.99最接近单词)。我们可以根据自己的标准进行设置。

掌握Python第一课:从构建实际应用程序开始!-14.jpg (49.12 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调4.2 - 获取近似匹配

掌握Python第一课:从构建实际应用程序开始!-15.jpg (13.52 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调4.2 - 获取近似匹配(输出)

我认为不需要解释输出,对吧?这三个中最接近的词是rainy,因此是[' rainy ']。如果你执行到这一步,那么你已经学会了困难的一部分。现在,我们只需将其插入到代码中即可获得输出。

步调5- 你说的是这个意思吗?

为了便于阅读,我方才添加了if-else部分代码。你可能熟悉前两个else-if语句,让我们理解第三个。它首先检查它获得的近似匹配的长度,因为我们只有在单词有一个或多个近似匹配时才能打印。获取近似匹配函数将用户输入的单词作为第一个参数,我们的整个数据集与该单词匹配。在这里,关键是我们的数据中的单词和值是它们的界说,正如我们之前所学到的。return语句中的[0]暗示所有匹配的第一个近似匹配。

掌握Python第一课:从构建实际应用程序开始!-16.jpg (46.04 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调5-你说的是这个意思吗?

掌握Python第一课:从构建实际应用程序开始!-17.jpg (17.81 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调5-你说的是这个意思吗?(输出)

是的,这就是我的意思。所以现在怎么办?你不克不及只留下一个问题。如果这是用户的意思,你必须检索这个单词的界说。这就是我们下一步要做的事情。

步调6- 检索界说

来自用户的另外一个输入和if-else的另一个层,就在那里。建议对单词进行界说。

掌握Python第一课:从构建实际应用程序开始!-18.jpg (31.52 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调6- 检索界说

掌握Python第一课:从构建实际应用程序开始!-19.jpg (24.77 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调6- 检索界说(输出)

步调7-锦上添花

固然它让我们获得了rain的界说,可是它周围有方括号,这看起来不是很好吧?让我们删除它们,让它看起来更清洁。"rain"这个词有多个界说,你注意到了吗?有几个单词有多个界说,因此我们将遍历具有多个界说的单词的输出,并简单地打印出具有单个界说的单词。

掌握Python第一课:从构建实际应用程序开始!-20.jpg (24.67 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调7-锦上添花

掌握Python第一课:从构建实际应用程序开始!-21.jpg (32.16 KB, 下载次数: 0)

2018-11-20 10:11 上传

步调7-锦上添花(输出)

看起来好多了,不是吗?在下面我附上整个代码供你参考,随时修改和升级代码。

代码

掌握Python第一课:从构建实际应用程序开始!-22.jpg (56.55 KB, 下载次数: 0)

2018-11-20 10:11 上传

掌握Python第一课:从构建实际应用程序开始!-23.jpg (54.76 KB, 下载次数: 0)

2018-11-20 10:11 上传

交互式词典

结束说明

当介入其中时,你会学到很多工具。你今天了解了JSON数据类型和python的基本功能,一个名为"difflib"的新库,以及如何编写清洁代码。选择不合数据集,并应用你所有的技能,而这是你成为数据科学领域巨匠的唯一途径。

掌握Python第一课:从构建实际应用程序开始!-24.jpg (16.29 KB, 下载次数: 0)

2018-11-20 10:11 上传

文章来源:https://towardsdatascience.com/master-pytho

更多内容回复查看:

游客,如果您要查看本帖隐藏内容请回复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值