Datentypen für Vermarkter: Zahlen, Zeichenfolgen und Boolesche Werte
Veröffentlicht: 2017-08-10Hinweis: Dieser Blog-Beitrag ist der dritte in einer Reihe, die von unserem Sr. Web Analyst Adrian Palacios geschrieben wurde, und soll Marketingfachleuten die Informationen und Anweisungen geben, die für die Installation der Programmiersprache Python erforderlich sind. Falls Sie es verpasst haben, Adrians erster Post erklärt, warum Marketer dies überhaupt in Betracht ziehen sollten, und sein zweiter Post erklärt, wie man Python installiert.
Als ich anfing, Programmieren zu lernen, hatte ich große Probleme mit dem Konzept der „Datentypen“. Es war immer eines der ersten diskutierten Themen, aber auch eines der abstraktesten. Aus Frustration über das Nichtverstehen überspringe ich normalerweise jede Diskussion über Datentypen und rationalisiere sie, indem ich mir sage: „Was sind sie überhaupt wichtig?“ Aber nachdem ich das Programmieren ein paar Jahre lang zu einem Teil meiner täglichen Arbeit gemacht habe, haben Datentypen (langsam) begonnen, Sinn zu machen.
Was sind Datentypen?
Datentypen sind eine Reihe von Regeln, die bestimmen, was Sie mit Python tun können (und was nicht). Sie erleben jeden Tag ähnliche Einschränkungen in der realen Welt: Versuchen Sie, eine Mahlzeit mit einer Kreditkarte zu bezahlen, wenn das Restaurant nur Bargeld akzeptiert. Versuchen Sie, einen Fluss mit dem Fahrrad hinunterzufahren, anstatt ein Kanu oder Kajak zu benutzen. Oder versuchen Sie, einen Kuchen mit Salz anstelle von Zucker zu backen. Sie könnten diese Dinge ausprobieren, wenn Sie wirklich wollten, aber ich bezweifle, dass Sie mit dem Ergebnis zufrieden wären.
Ähnlich, wenn Sie Programmieren als Backen betrachten, dann sind Datentypen die Hauptzutaten jedes Python-Codes, genau wie Eier, Mehl, Butter, Backpulver und Zucker die Hauptzutaten für die Herstellung eines Kuchens sind. Oder möchten Sie vielleicht einen Kuchen? Verwenden Sie weniger Mehl, lassen Sie das Backpulver ganz weg, fügen Sie vielleicht eine Fruchtfüllung hinzu und voila, Sie sind auf dem besten Weg, einen Kuchen zu backen. Sehen Sie, wohin das führt? Zu verstehen, wozu jeder Datentyp in der Lage ist und wie man sie miteinander kombiniert, ist der Schlüssel, um ein besserer Programmierer zu werden.
Hier sind nur einige gängige Datentypen in Python:
Nummern, die weiter in andere Typen unterteilt werden, wie zum Beispiel:
Ganzzahlen: 0, 1, 2, 3
Schwimmer: 0,0, 1,0, 2,5, 3,145
Streicher: „Think Different“, „Netflix and Chill“
Boolesche Werte: Wahr, Falsch
Es gibt viele weitere Datentypen in Python, aber im Moment konzentrieren wir uns auf diese drei.
In diesem Beitrag erfahren Sie, was Sie mit den grundlegenden Datentypen in Python machen können und warum Datentypen wichtig sind.
Meiner Erfahrung nach ist dies in der Regel der langweiligste Teil eines Buches/Videos/Online-Kurses zum Thema „Programmieren lernen“, aber da Datentypen für die Programmierung so entscheidend sind, empfehle ich dringend, diesen Beitrag nicht zu überspringen.
Zahlen
Die zwei Haupttypen von Zahlen in Python sind Ganzzahlen (ganze Zahlen) und Floats. Floats können als Dezimalzahlen betrachtet werden, aber es gibt einige große Unterschiede, von denen einer später besprochen wird.
Das Offensichtlichste, was wir mit Zahlen machen können, ist … Mathe! Hier sind einige Sonderzeichen, die für mathematische Berechnungen in Python verwendet werden:
Mit diesen Grundoperationen können wir nun einige Szenarien durchspielen.
Szenario 1
Ihr Content-Team hat berichtet, dass der Blog vor zwei Wochen 80.000 Seitenaufrufe und diese Woche 105.000 Seitenaufrufe generiert hat; Wie hoch ist das wöchentliche Wachstum der Seitenaufrufe? Denken Sie daran, dass Sie zur Berechnung der prozentualen Änderung (Neue Zahl – Alte Zahl) ÷ Alte Zahl Folgendes tun können:
Nun, das scheint nicht ganz richtig zu sein. Warum nicht? Wie jeder gute Mathematiker folgte Python der Reihenfolge der Operationen in der von uns eingegebenen Anweisung. Hier können wir Python mit Klammern die Reihenfolge mitteilen, die wir wirklich wollen:
Das ist besser. Denken Sie daran, dass wir einen Prozentsatz betrachten, also erhalten wir in diesem Fall durch Verschieben der Dezimalstelle um zwei Stellen nach rechts, was wir brauchen. Es sieht so aus, als ob der Traffic zum Blog Woche für Woche um 31,25 % gestiegen ist.
Szenario 2
Sie arbeiten mit einem Online-Publisher zusammen, um eine spezielle Kampagne durchzuführen, die großformatige Banner- und Videoanzeigen umfasst. Der Publisher hat ein Angebot gesendet, in dem er angibt, dass das Paket einen Festpreis von 15.000 US-Dollar hat und davon ausgeht, dass es 550.000 Impressionen generieren wird. Sie möchten den CPM berechnen, um dieses Angebot besser mit anderen Optionen vergleichen zu können.
Um den CPM zu ermitteln, verwenden wir die Formel Kosten der Kampagne ÷ (Gesamtimpressionen ÷ 1000):
Diesmal haben wir die Reihenfolge der Operationen richtig hinbekommen; Anscheinend beträgt der CPM für die Kampagne etwa 27,27 $.
Die Verwendung von Python auf diese Weise ist wirklich mühsam, insbesondere wenn lange Formeln eingegeben werden, die nur eine einzige Metrik zurückgeben. Obwohl diese Beispiele einfach sind, gibt es Möglichkeiten, kompliziertere mathematische Operationen auf Hunderttausende (oder sogar Millionen) von Datenzeilen anzuwenden.
Ältere Versionen von Python (Version 2.7 und niedriger) geben einige seltsame Antworten, wenn es darum geht, ganze Zahlen zu dividieren, die zu einem Float führen würden, wie z ohne Probleme, was Teil der Magie ist, eine neuere Version von Python zu verwenden. Es stellt sich die Frage: Warum werden Zahlen mit einem Dezimalpunkt als Gleitkommazahlen und nicht als Dezimalzahlen bezeichnet? Jackie Kazil und Katharine Jarmul haben in ihrem Buch Data Wrangling With Python ein großartiges Beispiel: In vielen Programmiersprachen ist 0,1 + 0,2 nicht gleich 0,3. Probieren Sie es selbst aus: Geben Sie 0,3 in Ihr Terminal ein, gefolgt von 0,1 + 0,2
Verrückt oder? Mark Lutz geht in seinem Buch „ Learning Python “ ausführlicher auf diese Kuriosität ein, aber da Vermarkter Zahlen normalerweise nicht bis zum millionsten Grad berechnen müssen, ist es nicht entscheidend, dieses Problem vollständig zu verstehen, und es ist gut genug, einfach zu wissen, dass es existiert. Aber wenn Sie wirklich neugierig sind, hier sind einige Beiträge, die mehr erklären:
- Fließkomma entmystifiziert, Teil 1
- Fließkomma entmystifiziert, Teil 2
Saiten
Strings kann man sich als in Anführungszeichen eingeschlossene Zeichen vorstellen. Dies ist eine stark vereinfachte Definition, da sie die Nuancen zwischen Bytearrays, Unicode, ASCII usw. ignoriert, aber ich denke, dass es im Moment unnötig ist, auf diese Art von Details einzugehen.
Wie gibt man in Anführungszeichen eingeschlossene Zeichen richtig ein? Es stellt sich heraus, dass es mehr als ein paar verschiedene Möglichkeiten gibt. Zum Beispiel spielt es meistens keine Rolle, ob Sie einfache oder doppelte Anführungszeichen verwenden, solange Sie konsistent bleiben:
Als wir mit einem doppelten Anführungszeichen in der dritten Zeichenfolge begannen und mit einem einfachen Anführungszeichen endeten, ist ein Fehler aufgetreten. Sie würden wahrscheinlich nicht absichtlich einfache und doppelte Anführungszeichen mischen, aber eine Sache, auf die Sie achten sollten, sind Apostrophe:
Beachten Sie, dass die erste Zeichenfolge, die in doppelte Anführungszeichen gesetzt wurde, das Apostroph gut verarbeitet hat, während dies bei der zweiten Zeichenfolge nicht der Fall war. Warum? Als Python auf das zweite einfache Anführungszeichen stieß, erwartete es, dass die Zeichenfolge enden würde, aber die Buchstaben gingen weiter. Das Abschneiden des Satzes bringt den Fehler zum Schweigen:
Es ist jedoch nicht sinnvoll, nur einen Teil eines Satzes zu haben. Wenn Sie wirklich einfache Anführungszeichen verwenden möchten, besteht eine Möglichkeit darin, das Apostroph zu „escapen“. Das können Sie tun, indem Sie direkt vor dem Apostroph in Ihrem Satz einen umgekehrten Schrägstrich (\) setzen. Dies weist Python an, das nächste Zeichen auf besondere Weise zu behandeln:
Das Maskieren des Apostrophs ermöglichte es uns, weiterhin einfache Anführungszeichen und ein Apostroph in derselben Zeichenfolge zu verwenden.
Es gibt eine andere Möglichkeit, Strings in Python zu erstellen: dreifache Anführungszeichen. Beachten Sie, dass Sie beim Eingeben einer mehrzeiligen Zeichenfolge die Eingabetaste drücken müssen, um die nächste Zeile zu beginnen. Dadurch ändert sich Terminal auch so, dass es …: links von Ihrer neuen Zeile anzeigt. Dies wird wieder angezeigt, wenn wir mit der Eingabe mehrerer Codezeilen beginnen.
Schließlich bemerken Sie vielleicht einige ungewöhnliche Zeichen in der Zeichenfolge: \n. Dies teilt dem Computer mit, wo Sie eine neue Zeile eingegeben haben; Dies ist hilfreich, wenn Sie die Zeichenfolge erneut drucken müssen und die Formatierung genau festlegen möchten.
Ok, jetzt, wo wir die ganze Zeit damit verbracht haben, uns anzusehen, wie man eine Zeichenfolge richtig eingibt (ich weiß, oder? So viel Arbeit für etwas so Einfaches …), ist es an der Zeit, mit dem lustigen Teil fortzufahren: der Manipulation von Zeichenfolgen.
Es gibt viele, viele weitere Methoden für Strings; es gibt auch ganz andere Themen wie Pattern Matching und Slicing, auf die wir später eingehen werden. Lassen Sie uns, nachdem die Grundlagen aus dem Weg geräumt sind, ein tatsächliches Beispiel durcharbeiten.
Szenario 1
Angenommen, Sie haben einen neuen Text, der in AdWords hochgeladen werden muss, aber der gesamte Text besteht aus Kleinbuchstaben und Sie sind sich nicht sicher, ob die Anzeigentitel innerhalb der 30-Zeichen-Grenze liegen. Lassen Sie uns die Länge überprüfen und die Überschrift „billigste Flüge nach Paris“ in den Titelfall drucken:
Das erste Beispiel ist technisch gesehen eine Funktion, während das zweite eine Methode ist. Das einzige, was uns im Moment interessiert, ist, dass jede anders eingegeben wird: Bei einer Funktion geben wir zuerst „len(“, dann den String selbst und schließlich die letzte Klammer „)“ ein. Die gute Nachricht ist, dass die Überschrift innerhalb der von AdWords erzwungenen 30-Zeichen-Grenze liegt.
Als nächstes geben wir mit der Methode zuerst den String ein und fügen dann .title() nach dem schließenden Anführungszeichen hinzu (ohne Leerzeichen!).
Schließlich fragen Sie sich vielleicht: „Warum mache ich das in Python, wenn die gleichen Formeln in Excel verfügbar sind?“ Das ist ein fairer Punkt.
Während das Herumspielen mit Überschriften ein dummes Beispiel ist, hoffe ich, dass der Punkt klar ist: Es gibt viele Optionen, um Text mit Python zu manipulieren. Und ähnlich wie im vorherigen Szenario mit der Berechnung von CPMs oder prozentualen Änderungen ist die Möglichkeit, Tausende von Textzeichen in nur wenigen Codezeilen zu manipulieren, ein sehr mächtiges Werkzeug, das man griffbereit haben sollte.
Die größten Kopfschmerzen, die mir das erspart hat, ist zum Beispiel das Bereinigen von Millionen von URL-Zeilen aus Google Analytics. Der zweite Punkt dieser Übung ist es, auf etwas hinzuweisen, das in Zukunft andere Schmerzen ersparen kann: Wenn Sie wissen, wie man Formeln in Excel oder Google Docs verwendet, sind Sie bereits einen Schritt weiter, wenn Sie verstehen, wie man programmiert. Es gibt viele Ähnlichkeiten, die von Excel in Python übersetzt werden.
Boolesche Werte
Die beiden wichtigsten booleschen Werte in Python sind True und False. Ihre Bedeutung ist wirklich einfach: True bedeutet wahr und False bedeutet falsch.
Bis wir in die Verwendung von Logik in Python eintauchen, ist es am besten, boolesche Werte durch eine Analogie zu erklären. Wenn Sie eine Facebook-Videoanzeigenkampagne erstellen, müssen Sie entscheiden, welches Creative verwendet werden soll. Soll es das angesagte neue Video sein, das auf Markenbekanntheit abzielt, oder solltest du bei dem alten, aber kampferprobten Video bleiben, das einen klaren Aufruf zum Handeln hat? Es hängt davon ab, was Sie erreichen möchten, oder? In ähnlicher Weise wird es einen Punkt geben, an dem Sie eine Logik erstellen müssen, um Ihrem Computer mitzuteilen, welchem Pfad er folgen soll, und Boolesche Werte sind eine Möglichkeit, diese Aufgabe zu erfüllen.
Es gibt andere Objekte in Python, die sich wie boolesche Werte verhalten können, aber im Moment reicht es aus, nur True und False einzuführen. Wir werden uns mit diesem Thema in einem zukünftigen Beitrag eingehender befassen.
Na und?
Zu Beginn dieses Beitrags habe ich erwähnt, dass der Prozess mühsam und langweilig war, als ich zum ersten Mal versuchte, etwas über Datentypen zu lernen. Genau wie der ungeduldige Teenager im Geometrieunterricht der High School, der einen Lehrer mit der Frage aufstachelt: „Wann werde ich jemals diesen nutzlosen Kram wissen müssen?“
Ich hielt es für sinnlos, all diese Regeln zu Datentypen durchzugehen. Aber ich habe gelernt, die Regeln zu schätzen, denn wenn Sie versuchen, diese Regeln zu brechen (meistens), tritt ein Fehler auf. Wenn Sie ein verantwortungsbewusster Programmierer sind und Ihren Code im Voraus testen, können diese Fehler Sie davor bewahren, kritische Fehler in Ihrem Code zu machen, wenn es wirklich darauf ankommt. Sehen wir uns einige Möglichkeiten an, wie Fehler auftauchen können.
Ist Ihnen in den Szenarien, in denen Sie Mathematik mit Zahlentypen geübt haben, aufgefallen, dass bei diesen Berechnungen keine Kommas verwendet wurden? Sie sind wahrscheinlich daran gewöhnt, Zahlen mit Kommas (oder Dezimalzahlen für unsere europäischen Freunde!) einzugeben, aber wenn Sie das in Python versuchen, werden Sie auf ein seltsames Verhalten stoßen:
Hmmm; überhaupt nicht das, was Sie erwartet haben. Indem wir ein Komma in diese Zahl setzen, haben wir unwissentlich ein „Tupel“ erstellt; Es ist im Moment nicht notwendig zu wissen, was ein Tupel ist, aber es ist wichtig zu sehen, dass das Komma die Zahl in 500 und 0 teilt, was sich stark von fünfhunderttausend unterscheidet.
Dieses Beispiel hebt auch einen entscheidenden Aspekt beim Schreiben von Code hervor: Bereits ein einziges falsch geschriebenes Zeichen kann große Probleme verursachen. Das Korrekturlesen von Code ist anfangs schwierig, aber mit etwas Übung werden Sie besser. Unerwartete Ergebnisse oder Fehler sind kein Grund zur Panik; es kann sich beängstigend anfühlen, bedeutet aber normalerweise nur, dass bei der Übersetzung etwas verloren gegangen ist.
Eine Regel, die Sie wahrscheinlich erwarten würden, ist, dass beim Versuch, eine Ganzzahl und eine Zeichenfolge hinzuzufügen, eine Fehlermeldung angezeigt wird:
Und du hättest Recht. In der zweiten Codezeile haben wir versucht, die Ganzzahl 1 zur Zeichenfolge „1“ hinzuzufügen, was zu einem Fehler führte. Sie denken vielleicht: „Das ist ein lahmes Beispiel; Wann würde jemals jemand versuchen, eine ganze Zahl zu einem String hinzuzufügen?“ Sie wären überrascht, wie viele APIs Zahlen als Zeichenfolge zurückgeben. Es gibt sehr gute Gründe dafür, aber wenn Sie es mit einer API zu tun haben, ist die Annahme, dass eine Zahl eine Zahl bleibt, keine sichere Sache. Ein großartiges Beispiel ist die neueste Google Analytics Reporting API. Sehen Sie sich den Screenshot der Daten an, die Google Analytics Ihnen liefert, wenn Sie einen Bericht anfordern. Überraschung! Alle Zahlen (siehe Felder „Werte“) sind in Anführungszeichen gesetzt.
Das wirft einen Schraubenschlüssel in die Dinge, nicht wahr? Das würde es, aber wenn Sie die API-Dokumentation im Voraus lesen, werden Sie dieses Problem erwarten. Glücklicherweise gibt es in Python auch einige Tools, die uns helfen können, wie zum Beispiel die Funktion int():
Indem wir die Zeichenfolge '1' in die int()-Funktion einfügen, teilen wir Python mit, dass wir dies wie eine Ganzzahl behandeln möchten; Jetzt können Sie diese Zahlen addieren und mit Ihrem Leben weitermachen.
Dies sind nur einige Möglichkeiten, wie Datentypen bestimmen können, was Sie in Python tun können, aber sie zeigen auch, dass es fast immer eine Möglichkeit gibt, diese Probleme zu umgehen. Bitte kontaktieren Sie mich auf Twitter, wenn Sie Fragen zu Datentypen haben.