マーケターのデータ型:数値、文字列、ブール値
公開: 2017-08-10注:このブログ投稿は、シニアWebアナリストのAdrian Palaciosが作成したシリーズの3番目であり、プログラミング言語であるPythonのインストールに必要な情報と指示をマーケターに提供することを目的としています。 あなたがそれを見逃した場合のために、エイドリアンの最初の投稿はマーケターがそもそもそうすることを検討すべき理由を説明し、彼の2番目の投稿はPythonをインストールする方法を説明しています。
プログラミングの仕方を学び始めたとき、「データ型」の概念に多くの問題を抱えていました。 それは常に最初に議論されたトピックの1つでしたが、最も抽象的なものの1つでもありました。 理解できないことへの欲求不満から、私は通常、データ型の議論をスキップし、「それらは何が重要なのか」と自分に言い聞かせて合理化します。 しかし、プログラミングを日常業務の一部にした数年後、データ型は(ゆっくりと)意味をなし始めました。
データ型とは何ですか?
データ型は、Pythonでできること(できないこと)を管理する一連のルールです。 現実の世界でも同様の制約が毎日発生します。レストランが現金しか受け付けない場合は、クレジットカードで食事の支払いをしてみてください。 カヌーやカヤックを使うのではなく、川を下って自転車に乗ってみてください。 または砂糖の代わりに塩でケーキを焼いてみてください。 本当にやりたいのであれば、これらのことを試すことができますが、結果に満足できるとは思えません。
同様に、プログラミングをベーキングと考えると、データ型はPythonコードの重要な要素であり、卵、小麦粉、バター、ベーキングパウダー、砂糖がケーキを作るための重要な要素であるのと同じです。 または、パイが欲しいですか? 小麦粉の使用量を減らし、ベーキングパウダーを完全に落とし、フルーツフィリングと出来上がりを追加すると、パイを作ることができます。 これがどこに向かっているのか分かりますか? 各データ型の機能とそれらを組み合わせる方法を理解することは、より優れたプログラマーになるための鍵です。
Pythonの一般的なデータ型は次のとおりです。
数値。次のような他のタイプにさらに細分化されます。
整数:0、1、2、3
フロート:0.0、1.0、2.5、3.145
文字列: 「ThinkDifferent」、「Netflix andChill」
ブール値: True、False
Pythonにはさらに多くのデータ型がありますが、ここではこれら3つに焦点を当てます。
この投稿では、Pythonの基本的なデータ型でできることのいくつかと、データ型が重要である理由を学びます。
私の経験では、これは「Learn How To Program」の本/ビデオ/オンラインコースの中で最も退屈な部分になる傾向がありますが、データ型はプログラミングにとって非常に重要であるため、この投稿をスキップしないことを強くお勧めします。
数字
Pythonの数値の2つの主なタイプは、整数(整数)と浮動小数点数です。 フロートは小数と考えることができますが、いくつかの大きな違いがあり、そのうちの1つについては後で説明します。
数字でできる最も明白なことは…数学です! Pythonで数学を行うために使用されるいくつかの特殊文字は次のとおりです。
これらの基本的な操作で、いくつかのシナリオを実行できます。
シナリオ1
あなたのコンテンツチームは、ブログが2週間前に80,000ページビューを生成し、今週は105,000ページビューを生成したと報告しました。 ページビューの毎週の増加は何ですか? 実行できる変化率を計算するには(新しい数値–古い数値)÷古い数値を思い出してください。
まあ、それは完全に正しくないようです。 なぜだめですか? 他の優れた数学者と同様に、Pythonは入力したステートメントの演算の順序に従いました。 ここでは、括弧を使用して、Pythonに本当に必要な順序を指示できます。
それがいいです。 パーセンテージを調べているので、この場合、小数点以下2桁を右に移動すると、必要なものが得られます。 ブログへのトラフィックは週ごとに31.25%増加したようです。
シナリオ2
あなたはオンラインパブリッシャーと協力して、大判バナーとビデオ広告を含む特別なキャンペーンを実行しています。 サイト運営者は、パッケージの固定費が15,000ドルで、550,000インプレッションが発生すると予想しているという提案を送信しました。 この提案を他のオプションとよりよく比較するために、CPMを計算したいとします。
CPMを見つけるには、キャンペーンの費用÷(総インプレッション数÷1000)の式を使用します。
今回は、操作の順序が正しくなりました。 キャンペーンのCPMは約27.27ドルのようです。
このようにPythonを使用するのは非常に面倒です。特に、長い数式を入力すると1つのメトリックしか返されない場合はなおさらです。 これらの例は単純ですが、より複雑な数学演算を数十万(または数百万)行のデータに適用する方法があります。
古いバージョンのPython(バージョン2.7以下)では、1÷3の除算など、浮動小数点数になる整数の除算に関して奇妙な答えが返されます。これら2つの例では、整数を除算して、最終的に浮動小数点数になります。問題なく、これは新しいバージョンのPythonを使用する魔法の一部です。 それは疑問を投げかけます:なぜ小数点のある数字は小数ではなく浮動小数点数と呼ばれるのですか? JackieKazilとKatharineJarmulは、彼らの著書「Pythonを使用したデータラングリング」に優れた例を示しています。多くのプログラミング言語では、0.1+0.2は0.3と等しくありません。 自分で試してみてください。端末に0.3と入力し、0.1+0.2を続けます。
変だよね? Mark Lutzは、彼の著書「 Learning Python 」でこの奇妙な点について詳しく説明していますが、マーケターは通常、百万度まで数値を計算する必要がないため、この問題を完全に理解することは重要ではなく、単に存在することを知っていれば十分です。 しかし、あなたが本当に興味があるなら、ここにもっと説明するいくつかの投稿があります:
- 謎解きされた浮動小数点、パート1
- 謎解きされた浮動小数点、パート2
文字列
文字列は、引用符で囲まれた文字と考えることができます。 これは、バイト配列、Unicode、ASCIIなどの間のニュアンスを無視するため、非常に単純化された定義ですが、そのような詳細については、今のところ不要だと思います。
引用符で囲まれた文字を正しく入力するにはどうすればよいですか? いくつかの異なる方法があることがわかりました。 たとえば、一貫性を保つ限り、ほとんどの場合、一重引用符を使用するか二重引用符を使用するかは関係ありません。
3番目の文字列の二重引用符で始まり、単一引用符で終わると、エラーが発生しました。 意図的に一重引用符と二重引用符を混在させることはおそらくないでしょうが、注意すべきことの1つはアポストロフィです。
二重引用符で囲まれた最初の文字列はアポストロフィを適切に処理しましたが、2番目の文字列は処理しなかったことに注意してください。 なんで? Pythonが2番目の単一引用符に遭遇すると、文字列が終了することを期待していましたが、文字は続きました。 文を切り落とすと、エラーが沈黙します。
しかし、文の一部だけを持つことは役に立ちません。 本当に、本当に一重引用符を使用したい場合、1つのオプションは、アポストロフィを「エスケープ」することです。 これは、文のアポストロフィの直前に円記号(\)を配置することで実行できます。 これは、Pythonに次の文字を特別な方法で処理するように指示します。
アポストロフィをエスケープすることで、同じ文字列で一重引用符とアポストロフィを使用し続けることができました。
Pythonで文字列を作成するもう1つの方法は、トリプルクォートです。 複数行の文字列を入力する場合、次の行を開始するにはEnterキーを押す必要があることに注意してください。 これにより、ターミナルが変更され、新しい行の左側に…:が表示されます。 これは、複数行のコードを入力し始めると再び表示されます。
最後に、文字列にファンキーな文字が含まれていることに気付くかもしれません:\n。 これにより、新しい行を入力した場所がコンピューターに通知されます。 文字列を再度印刷する必要があり、フォーマットについて正確にしたい場合に役立ちます。
さて、文字列を正しく入力する方法をずっと見てきたので(私は知っていますか?とても単純なもののために多くの作業があります...)、楽しい部分、つまり文字列の操作に移りましょう。
文字列には、さらに多くのメソッドがあります。 パターンマッチングやスライスなど、他にもすべてのトピックがありますが、これについては後で説明します。 基本がわからなくなったので、実際の例を見ていきましょう。
シナリオ1
AdWordsにアップロードする必要のある新しいコピーがあるが、すべてのコピーが小文字であり、見出しが30文字の制限内にあるかどうかわからないとします。 長さを確認し、「パリ行きの格安航空券」という見出しをタイトルケースに印刷してみましょう。
最初の例は技術的には関数ですが、2番目の例はメソッドです。 現在気になっているのは、それぞれの入力方法が異なることだけです。関数では、最初に「len(」、次に文字列自体、最後に最後の括弧「)」と入力します。 良いニュースは、見出しがAdWordsによって適用される30文字の制限内にあることです。
次に、このメソッドを使用して、最初に文字列を入力し、次に終了引用符の後に.title()を追加します(スペースなしで!)。
最後に、「同じ数式がExcelで使用できるのに、なぜPythonでこれを行うのか」と自問するかもしれません。 それは公正な点です。
見出しをいじるのはばかげた例ですが、要点がはっきりしていることを願っています。Pythonでテキストを操作するために利用できるオプションはたくさんあります。 また、CPMまたは変化率を計算する前のシナリオと同様に、わずか数行のコードで数千文字のテキストを操作できることは、非常に強力なツールです。
たとえば、これによって私が救った最大の頭痛の種は、GoogleAnalyticsから数百万行のURLをクリーンアップすることです。 この演習の2番目のポイントは、将来的に他の苦痛を軽減する可能性のあることを指摘することです。ExcelまたはGoogleドキュメントで数式を使用する方法を知っている場合は、プログラミング方法を理解する上ですでに一歩進んでいます。 ExcelからPythonに変換される類似点はたくさんあります。
ブール値
Pythonの2つの主要なブール値は、TrueとFalseです。 それらの意味は本当に単純です。Trueはtrueを意味し、Falseはfalseを意味します。
Pythonでロジックを使用することに飛び込むまでは、類推によってブール値を説明するのが最善です。 Facebookの動画広告キャンペーンを作成するときは、使用するクリエイティブを決定する必要があります。 ブランド認知度を目的とした流行の新しい動画にする必要がありますか、それとも、行動を促す明確な呼びかけがある、古いが戦闘でテストされた動画に固執する必要がありますか? それはあなたが何を達成しようとしているのかによりますよね? 同様に、どのパスをたどるかをコンピューターに指示するロジックを作成する必要があるポイントがあります。ブール値は、そのタスクを実行する1つの方法です。
Pythonにはブール値のように機能するオブジェクトが他にもありますが、今のところはTrueとFalseを導入するだけで十分です。 このテーマについては、今後の投稿でさらに詳しく説明します。
だから何?
この投稿の冒頭で、私が最初にデータ型について学習しようとしたとき、プロセスは退屈で主題が鈍いことを述べました。 高校の幾何学の授業でせっかちなティーンエイジャーが「いつこの役に立たないがらくたを知る必要があるのか」という質問で先生を悩ませているように。
データ型に関するこれらすべてのルールを通過することは無意味だと感じました。 しかし、これらのルールを破ろうとすると(ほとんどの場合)エラーが発生するため、私はルールを高く評価するようになりました。 あなたが責任あるプログラマーであり、事前にコードをテストしている場合、これらのエラーに遭遇することで、本当に重要なときにコードに重大な間違いを犯すのを防ぐことができます。 エラーが表面化する可能性のあるいくつかの方法を調べてみましょう。
数値タイプで数学を練習したシナリオでは、これらの計算を行うときにコンマが使用されていないことに気づきましたか? おそらく、コンマ(またはヨーロッパの友人の場合は小数)を使用して数値を入力することに慣れていますが、Pythonでそれを試してみると、奇妙な動作が発生します。
うーん; あなたが期待したものではありません。 この番号にコンマを入れることで、無意識のうちに「タプル」を作成しました。 現時点でタプルが何であるかを知る必要はありませんが、コンマが数値を500と0に分割していることを確認することが重要です。これは、50万とは大きく異なります。
この例では、コードを書く際の重要な側面も強調しています。タイプミスした文字が1つだけでも、大きな問題が発生する可能性があります。 コードの校正は最初は難しいですが、練習すれば上手くなります。 予期しない結果やエラーは、パニックになることはありません。 怖いと感じるかもしれませんが、それは通常、翻訳で何かが失われたことを意味するだけです。
おそらく予想される1つのルールは、整数と文字列を追加しようとするとエラーが発生するということです。
そして、あなたは正しいでしょう。 コードの2行目で、整数1を文字列「1」に追加しようとしましたが、エラーが発生しました。 あなたは自分自身に考えているかもしれません。 誰かが文字列に整数を追加しようとするのはいつですか?」 数字を文字列として返すAPIの数に驚かれることでしょう。 これを行うのには非常に正当な理由がありますが、APIを扱っている場合、数値が数値になると想定することは安全な策ではありません。 1つの優れた例は、最新のGoogle AnalyticsReportingAPIです。 レポートをリクエストするときにGoogleAnalyticsが提供するデータのスクリーンショットをご覧ください。 サプライズ! すべての数値(「値」フィールドを参照)は引用符で囲まれています。
そういうのはレンチを物事に投げ込みますね。 そうですが、事前にAPIドキュメントを読んでおけば、この問題が発生することが予想されます。 幸いなことに、int()関数など、Pythonには役立つツールがいくつかあります。
文字列「1」をint()関数内に配置することで、これを整数のように扱いたいことをPythonに伝えています。 今、あなたはこれらの数字を足し合わせてあなたの人生を続けることができます。
これらは、データ型がPythonで何ができるかを決定する方法のほんの一部ですが、これらの問題を回避する方法がほとんど常にあることも示しています。 データ型について質問がある場合は、Twitterで私に連絡してください。