營銷人員的數據類型:數字、字符串和布爾值
已發表: 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 上與我聯繫。