营销人员的数据类型:数字、字符串和布尔值

已发表: 2017-08-10

注意:本博文是我们的高级网络分析师 Adrian Palacios 撰写的系列文章的第三篇,旨在为营销人员提供安装编程语言 Python 所需的信息和说明。 如果你错过了,Adrian 的第一篇文章解释了为什么营销人员应该首先考虑这样做,他的第二篇文章解释了如何安装 Python。

当我开始学习如何编程时,我在“数据类型”的概念上遇到了很多麻烦。 它始终是最先讨论的主题之一,但也是最抽象的主题之一。 出于不理解的挫败感,我通常会跳过任何关于数据类型的讨论,并通过告诉自己“它们有什么关系?”来合理化它。 但是在我将编程作为我日常工作的一部分几年之后,数据类型(慢慢地)开始变得有意义。

什么是数据类型?

数据类型是一组规则,用于管理您可以(和不能)用 Python 做什么。 您在现实世界中每天都会遇到类似的限制:尝试在餐厅只接受现金时使用信用卡支付餐费。 尝试骑自行车顺河而下,而不是使用独木舟或皮划艇。 或者尝试用盐代替糖烘烤蛋糕。 如果你真的想尝试这些东西,你可以尝试,但我怀疑你会对结果感到满意。

同样,如果您将编程视为烘焙,那么数据类型是任何 Python 代码的关键成分,就像鸡蛋、面粉、黄油、发酵粉和糖是制作蛋糕的关键成分一样。 或者,也许你想要一个馅饼? 少用面粉,完全放弃发酵粉,也许加入水果馅,瞧,你正在做馅饼的路上。 看看这是怎么回事? 了解每种数据类型的能力以及如何将它们混合在一起是成为更好的程序员的关键。

以下是 Python 中的一些常见数据类型:

数字,进一步细分为其他类型,例如:
整数:0、1、2、3
浮点数:0.0、1.0、2.5、3.145
弦乐: 'Think Different'、'Netflix and Chill'
布尔值:真,假

Python 中有更多的数据类型,但现在我们将重点关注这三种。

在这篇文章中,您将了解一些可以用 Python 中的基本数据类型做的事情,以及为什么数据类型很重要。

根据我的经验,这往往是任何“学习如何编程”书籍/视频/在线课程中最无聊的部分,但由于数据类型对编程至关重要,我强烈建议不要跳过这篇文章。

数字

Python 中的两种主要数字类型是整数(整数)和浮点数。 浮点数可以被认为是小数,但是有一些很大的区别,其中之一将在后面讨论。

我们可以用数字做的最明显的事情是……数学! 以下是一些用于在 Python 中进行数学运算的特殊字符:

通过这些基本操作,我们现在可以处理一些场景。

方案 1

您的内容团队报告说,该博客两周前产生了 80,000 次浏览量,而本周它产生了 105,000 次浏览量; 浏览量每周增长多少? 回想一下,计算你可以做的百分比变化(新数字 - 旧数字)÷旧数字:

嗯,这似乎不太正确。 为什么不? 像任何优秀的数学家一样,Python 遵循我们输入的语句中的运算顺序。 在这里,我们可以使用括号告诉 Python 我们真正想要的顺序:

这样更好。 请记住,我们正在查看百分比,因此在这种情况下,将小数点向右移动两位将得到我们需要的结果。 看起来博客的流量每周增长了 31.25%。

方案 2

您正在与一家在线发布商合作开展一项特别活动,其中包括大幅面横幅广告和视频广告。 出版商发送了一份提案,说明该软件包的固定成本为 15,000 美元,他们预计它会产生 550,000 次展示; 您想计算 CPM 以更好地将此提案与其他选项进行比较。

要计算每千次展示费用,我们使用公式成本 ÷(总展示次数 ÷ 1000):

这次我们得到了正确的操作顺序; 看起来该广告系列的每千次展示费用约为 27.27 美元。

像这样使用 Python 真的很乏味,尤其是在输入长公式时只返回一个指标。 虽然这些例子很简单,但有一些方法可以将更复杂的数学运算应用于数十万(甚至数百万)行数据。

旧版本的 Python(2.7 及更低版本)在将整数除以会产生浮点数时给出了一些奇怪的答案,例如除以 1 ÷ 3。在这两个示例中,我们一直在除整数并以浮点数结束没有任何问题,这是使用更新版本的 Python 的一部分。 它确实引出了一个问题:为什么带小数点的数字被称为浮点数而不是小数? Jackie Kazil 和 Katharine Jarmul 在他们的书《 Data Wrangling With Python 》中有一个很好的例子:在许多编程语言中,0.1 + 0.2 不等于 0.3。 自己尝试一下:在终端中输入 0.3,然后输入 0.1 + 0.2

很奇怪,对吧? Mark Lutz 在他的《 Learning Python 》一书中更深入地讨论了这个奇怪的问题,但由于营销人员通常不需要计算百万级的数字,因此完全理解这个问题并不重要,只要知道它的存在就足够了。 但如果你真的很好奇,这里有一些解释更多的帖子:

  • 浮点数揭秘,第 1 部分
  • 浮点揭秘,第 2 部分

字符串

字符串可以被认为是用引号括起来的字符。 这是一个过于简单的定义,因为它忽略了字节数组、Unicode、ASCII 等之间的细微差别,但我认为现在没有必要深入讨论这种细节。

如何正确输入用引号括起来的字符? 事实证明,有不止几种不同的方法。 例如,大多数时候使用单引号或双引号并不重要,只要保持一致即可:

通过在第三个字符串中以双引号开头并以单引号结尾,我们遇到了错误。 您可能不会故意混合单引号和双引号,但要注意的一件事是撇号:

请注意,用双引号括起来的第一个字符串很好地处理了撇号,而第二个字符串则没有。 为什么? 一旦 Python 遇到第二个单引号,它期望字符串结束,但字母继续。 切断句子可以消除错误:

但是只有句子的一部分是没有用的。 如果您真的非常想使用单引号,一种选择是“转义”撇号。 这可以通过在句子中的撇号前放置一个反斜杠 (\) 来完成。 这告诉 Python 以特殊方式处理下一个字符:

转义撇号使我们可以继续在同一字符串中使用单引号和撇号。

还有另一种方法可以在 Python 中创建字符串:三引号。 请注意,当您输入多行字符串时,您必须按 Enter 键才能开始下一行; 这也将终端更改为显示…:在新行的左侧。 当我们开始输入多行代码时,这将再次出现。

最后,您可能会注意到字符串中有一些时髦的字符:\n。 这会告诉计算机您在哪里输入了新行; 如果您需要再次打印字符串并且想要准确地了解格式,这将很有帮助。

好的,既然我们已经花了所有时间研究如何正确输入字符串(我知道,对吧?为了这么简单的事情做了这么多工作……),是时候进入有趣的部分了:操作字符串。

字符串的方法有很多很多。 还有其他完整的主题,例如模式匹配和切片,我们将在后面讨论。 抛开基础知识,让我们通过一个实际的例子来工作。

方案 1

假设您有新的副本需要上传到 AdWords,但所有副本都是小写的,并且您不确定标题是否在 30 个字符的限制内。 让我们检查长度并将标题“最便宜的飞往巴黎的航班”打印到标题大小写:

第一个例子在技术上是一个函数,而第二个例子是一个方法。 我们现在唯一关心的是每个类型的输入不同:对于函数,我们首先输入“len(”,然后是字符串本身,最后是最后一个括号“)”。 好消息是标题在 AdWords 规定的 30 个字符的限制范围内。

接下来,使用该方法,我们首先键入字符串,然后在右引号后添加 .title()(没有空格!)。

最后,您可能会问自己“当 Excel 中提供相同的公式时,为什么我要在 Python 中执行此操作?” 这是一个公平的观点。

虽然搞乱标题是一个愚蠢的例子,但我希望这一点很清楚:有很多选项可用于使用 Python 处理文本。 与之前计算 CPM 或百分比变化的场景类似,能够在几行代码中处理数千个字符的文本是一个非常强大的工具。

例如,这让我最头疼的事情是从 Google Analytics 中清理数百万行 URL。 本练习的第二点是指出一些可能会在未来避免其他痛苦的东西:如果您知道如何在 Excel 或 Google Docs 中使用公式,那么您在理解如何编程方面已经领先一步。 有很多相似之处可以从 Excel 转换为 Python。

布尔值

Python 中的两个主要布尔值是 True 和 False。 它们的含义非常简单:True 表示正确,False 表示错误。

在我们深入研究在 Python 中使用逻辑之前,最好通过类比来解释布尔值。 创建 Facebook 视频广告活动时,您需要决定使用什么创意。 应该是针对品牌知名度的时尚新视频,还是应该坚持使用具有明确号召性用语但经过实战考验的旧视频? 这取决于您要完成的工作,对吗? 同样,您需要创建一些逻辑来告诉您的计算机要遵循哪条路径,而布尔值是完成该任务的一种方法。

Python 中还有其他对象可以像布尔值一样工作,但现在只需引入 True 和 False 就足够了。 我们将在以后的帖子中更深入地处理这个主题。

所以呢?

在这篇文章的开头,我提到当我第一次尝试学习数据类型时,这个过程很乏味,而且主题也很枯燥。 就像高中几何课上不耐烦的少年用“我什么时候需要知道这些无用的垃圾?”的问题来激怒老师一样。

我觉得通过所有这些关于数据类型的规则是没有意义的。 但我已经开始欣赏这些规则,因为当你试图打破这些规则时(大多数时候),会发生错误。 如果你是一个负责任的程序员并提前测试你的代码,遇到这些错误可以避免你在代码中犯下严重错误,而这真的很重要。 让我们探讨一些错误可能会出现的方式。

在您使用数字类型练习数学的场景中,您是否注意到在进行这些计算时没有使用逗号? 您可能习惯于用逗号输入数字(或者我们的欧洲朋友使用小数!),但是如果您在 Python 中尝试这样做,您会遇到一些奇怪的行为:

嗯; 完全不是你所期望的。 通过在这个数字中放置一个逗号,我们在不知不觉中创建了一个“元组”; 目前没有必要知道元组是什么,但重要的是看到逗号将数字分成 500 和 0,这与 50 万有很大不同。

这个例子还强调了编写代码的一个关键方面:一个错误的字符可能会导致大问题。 一开始校对代码很困难,但随着练习,你会变得更好。 意外的结果或错误无需恐慌; 它可能会让人感到害怕,但它通常只意味着在翻译中丢失了一些东西。

您可能期望的一条规则是,当尝试添加一个整数和一个字符串时,您会得到一个错误:

你是对的。 在第二行代码中,我们尝试将整数 1 添加到字符串 '1' 中,这导致了错误。 你可能会想:“这是一个蹩脚的例子; 什么时候有人会尝试将整数添加到字符串中?” 您会惊讶于有多少 API 将数字作为字符串返回。 这样做有很好的理由,但是当您处理 API 时,假设一个数字将是一个数字并不是一个安全的选择。 一个很好的例子是最新的 Google Analytics Reporting API。 查看 Google Analytics 在您请求报告时为您提供的数据的屏幕截图。 惊喜! 所有数字(查看“值”字段)都用引号括起来。

那种把扳手扔进东西,不是吗? 会的,但是如果您提前阅读 API 文档,您就会预料到这个问题。 幸运的是,Python 中也有一些工具可以帮助我们,例如 int() 函数:

通过将字符串 '1' 放在 int() 函数中,我们告诉 Python 我们要将其视为整数; 现在你可以把这些数字加在一起,继续你的生活。

这些只是数据类型如何确定您在 Python 中可以做什么的几种可能性,但它们也表明几乎总有一种方法可以解决这些问题。 如果您对数据类型有任何疑问,请在 Twitter 上与我联系。