Tipi di dati per gli esperti di marketing: numeri, stringhe e booleani
Pubblicato: 2017-08-10Nota: questo post sul blog è il terzo di una serie scritta dal nostro analista web senior, Adrian Palacios, ed è progettato per fornire agli esperti di marketing le informazioni e le istruzioni necessarie per l'installazione del linguaggio di programmazione Python. Nel caso te lo fossi perso, il primo post di Adrian spiega perché i marketer dovrebbero considerare di farlo in primo luogo e il suo secondo post spiega come installare Python.
Quando ho iniziato a imparare a programmare, ho avuto molti problemi con il concetto di "tipi di dati". È sempre stato uno dei primi argomenti discussi, ma anche uno dei più astratti. Per la frustrazione di non capire, di solito saltavo qualsiasi discussione sui tipi di dati e la razionalizzavo dicendo a me stesso: "Che importanza hanno?" Ma dopo alcuni anni in cui ho reso la programmazione parte del mio lavoro quotidiano, i tipi di dati hanno (lentamente) iniziato ad avere un senso.
Cosa sono i tipi di dati?
I tipi di dati sono un insieme di regole che regolano ciò che puoi (e non puoi) fare con Python. Ogni giorno si verificano vincoli simili nel mondo reale: prova a pagare un pasto con una carta di credito quando il ristorante accetta solo contanti. Prova ad andare in bicicletta lungo un fiume piuttosto che usare una canoa o un kayak. Oppure prova a cuocere una torta con sale al posto dello zucchero. Potresti provare queste cose se lo volessi davvero, ma dubito che saresti felice del risultato.
Allo stesso modo, se pensi alla programmazione come al forno, i tipi di dati sono gli ingredienti chiave di qualsiasi codice Python, proprio come uova, farina, burro, lievito e zucchero sono ingredienti chiave per fare una torta. O forse vuoi una torta? Usa meno farina, lascia cadere del tutto il lievito, magari aggiungi un ripieno di frutta e voilà, sei sulla buona strada per fare una torta. Vedi dove sta andando? Capire di cosa è capace ogni tipo di dati e come combinarli insieme è la chiave per essere un programmatore migliore.
Ecco alcuni tipi di dati comuni in Python:
Numeri, che sono ulteriormente suddivisi in altri tipi, come ad esempio:
Interi: 0, 1, 2, 3
Flotta: 0.0, 1.0, 2.5, 3.145
Stringhe: "Pensa in modo diverso", "Netflix e Chill"
Booleani: Vero, Falso
Ci sono molti più tipi di dati in Python, ma per ora ci concentreremo su questi tre.
In questo post imparerai alcune delle cose che puoi fare con i tipi di dati di base in Python e perché i tipi di dati sono importanti.
Nella mia esperienza, questa tende a essere la parte più noiosa di qualsiasi libro/video/corso online "Impara a programmare", ma poiché i tipi di dati sono così cruciali per la programmazione, consiglio vivamente di non saltare questo post.
Numeri
I due tipi principali di numeri in Python sono interi (numeri interi) e float. I float possono essere considerati decimali, ma ci sono alcune grandi differenze, una delle quali verrà discussa in seguito.
La cosa più ovvia che possiamo fare con i numeri è... la matematica! Ecco alcuni caratteri speciali usati per fare matematica in Python:
Con queste operazioni di base, ora possiamo elaborare alcuni scenari.
scenario 1
Il tuo team di contenuti ha riferito che il blog ha generato 80.000 visualizzazioni di pagina due settimane fa e questa settimana ha generato 105.000 visualizzazioni di pagina; qual è la crescita settimanale delle visualizzazioni di pagina? Ricorda che per calcolare la variazione percentuale che puoi fare (Nuovo numero – Vecchio numero) ÷ Vecchio numero:
Beh, non sembra del tutto corretto. Perché no? Come ogni buon matematico, Python ha seguito l'ordine delle operazioni nell'istruzione che abbiamo digitato. Qui possiamo usare le parentesi per dire a Python l'ordine che vogliamo veramente:
Va meglio. Ricorda, stiamo guardando una percentuale, quindi in questo caso, spostando il decimale di due cifre a destra ci darà ciò di cui abbiamo bisogno. Sembra che il traffico verso il blog sia cresciuto del 31,25% settimana dopo settimana.
Scenario 2
Stai collaborando con un editore online per eseguire una campagna speciale che include banner di grande formato e annunci video. L'editore ha inviato una proposta affermando che il pacchetto ha un costo fisso di $ 15.000 e prevede che genererà 550.000 impressioni; vorresti calcolare il CPM per confrontare meglio questa proposta con altre opzioni.
Per trovare il CPM, utilizziamo la formula Costo della campagna ÷ (Impressioni totali ÷ 1000):
Questa volta abbiamo corretto l'ordine delle operazioni; sembra che il CPM per la campagna sia di circa $ 27,27.
Usare Python in questo modo è davvero noioso, specialmente quando si digitano formule lunghe restituisce solo una singola metrica. Sebbene questi esempi siano semplicistici, esistono modi per applicare operazioni matematiche più complicate a centinaia di migliaia (o addirittura milioni) di righe di dati.
Le versioni precedenti di Python (versione 2.7 e precedenti) danno alcune strane risposte quando si tratta di dividere interi che risulterebbe in un float, come dividere 1 ÷ 3. In questi due esempi, abbiamo diviso i numeri interi e abbiamo finito con i float senza problemi, il che fa parte della magia dell'utilizzo di una versione più recente di Python. Si pone la domanda: perché i numeri con una virgola decimale sono indicati come float anziché decimali? Jackie Kazil e Katharine Jarmul hanno un ottimo esempio nel loro libro, Data Wrangling With Python : in molti linguaggi di programmazione, 0.1 + 0.2 non è uguale a 0.3. Provalo tu stesso: digita 0.3 nel tuo terminale, quindi seguilo per 0.1 + 0.2
Strano, vero? Mark Lutz approfondisce questa stranezza nel suo libro, Learning Python , ma poiché i marketer in genere non hanno bisogno di calcolare i numeri al milionesimo grado, non è fondamentale comprendere appieno questo problema ed è abbastanza buono sapere semplicemente che esiste. Ma se sei davvero curioso, ecco alcuni post che spiegano di più:
- Demistificato in virgola mobile, parte 1
- Demistificato in virgola mobile, parte 2
stringhe
Le stringhe possono essere considerate come caratteri racchiusi tra virgolette. Questa è una definizione estremamente semplificata perché ignora le sfumature tra bytearray, Unicode, ASCII, ecc., ma penso che per ora non sia necessario entrare in questo tipo di dettagli.
Come si inseriscono correttamente i caratteri racchiusi tra virgolette? Si scopre che ci sono più di alcuni modi diversi. Ad esempio, la maggior parte delle volte non importa se si utilizzano virgolette singole o doppie, purché si rimanga coerenti:
Iniziando con una virgoletta doppia nella terza stringa e terminando con una virgoletta singola, abbiamo riscontrato un errore. Probabilmente non mescoleresti apposta virgolette singole e doppie, ma una cosa a cui prestare attenzione sono gli apostrofi:
Si noti che la prima stringa, che era racchiusa tra virgolette, gestiva bene l'apostrofo, mentre la seconda stringa no. Come mai? Una volta che Python ha incontrato la seconda virgoletta singola, si aspettava che la stringa finisse, ma le lettere continuavano. Tagliare la frase silenzia l'errore:
Ma avere solo una parte di una frase non è utile. Se vuoi davvero usare le virgolette singole, un'opzione è quella di "sfuggire" all'apostrofo. Ciò può essere fatto inserendo una barra rovesciata (\) immediatamente prima dell'apostrofo nella frase. Questo dice a Python di trattare il prossimo carattere in un modo speciale:
Sfuggire all'apostrofo ci ha permesso di continuare a usare virgolette singole e un apostrofo nella stessa stringa.
C'è un altro modo per creare stringhe in Python: virgolette. Nota che quando digiti una stringa su più righe, devi premere invio per iniziare la riga successiva; questo cambia anche Terminale da visualizzare ...: a sinistra della tua nuova linea. Questo apparirà di nuovo quando inizieremo a digitare più righe di codice.
Infine, potresti notare alcuni caratteri stravaganti nella stringa: \n. Questo dice al computer dove hai inserito una nuova riga; è utile se devi stampare di nuovo la stringa e vuoi essere preciso sulla formattazione.
Ok, ora che abbiamo passato tutto quel tempo a cercare come inserire correttamente una stringa (lo so, giusto? Tanto lavoro per qualcosa di così semplice...), è il momento di passare alla parte divertente: manipolare le stringhe.
Ci sono molti, molti più metodi per le stringhe; ci sono anche interi altri argomenti come il pattern matching e lo slicing che affronteremo in seguito. Con le basi fuori mano, lavoriamo attraverso un esempio reale.
scenario 1
Supponiamo che tu abbia una nuova copia che deve essere caricata in AdWords, ma tutta la copia è minuscola e non sei sicuro che i titoli rientrino nel limite di 30 caratteri. Controlliamo la lunghezza e stampiamo il titolo "voli più economici per parigi" sul titolo:
Il primo esempio è tecnicamente una funzione, mentre il secondo è un metodo. L'unica cosa che ci interessa in questo momento è che ognuno sia digitato in modo diverso: con una funzione digitiamo prima "len(", poi la stringa stessa e infine l'ultima parentesi ")". La buona notizia è che il titolo rientra nel limite di 30 caratteri imposto da AdWords.
Successivamente, con il metodo, digitiamo prima la stringa, quindi aggiungiamo .title() dopo la virgoletta di chiusura (senza spazi!).
Infine, potresti chiederti "Perché lo sto facendo in Python quando le stesse formule sono disponibili in Excel?" Questo è un punto giusto.
Anche se scherzare con i titoli è un esempio sciocco, spero che il punto sia chiaro: ci sono molte opzioni disponibili per manipolare il testo con Python. E simile allo scenario precedente con il calcolo dei CPM o della variazione percentuale, essere in grado di manipolare migliaia di caratteri di testo in poche righe di codice è uno strumento molto potente da avere a portata di mano.
Ad esempio, il più grande mal di testa che questo mi ha risparmiato è stato ripulire milioni di righe di URL da Google Analytics. Il secondo punto di questo esercizio è sottolineare qualcosa che potrebbe risparmiare altro dolore in futuro: se sai usare le formule in Excel o Google Docs, sei già un passo avanti nel capire come programmare. Ci sono molte somiglianze che si tradurranno da Excel in Python.
booleani
I due booleani principali in Python sono True e False. Il loro significato è davvero semplice: Vero significa vero e Falso significa falso.
Fino a quando non ci addentreremo nell'uso della logica in Python, è meglio spiegare i booleani attraverso un'analogia. Quando crei una campagna pubblicitaria video di Facebook, devi decidere quale creatività utilizzare. Dovrebbe essere il nuovo video alla moda che mira alla consapevolezza del marchio o dovresti restare con il vecchio video collaudato che ha un chiaro invito all'azione? Dipende da cosa stai cercando di realizzare, giusto? Allo stesso modo, ci sarà un punto in cui dovrai creare una logica per dire al tuo computer quale percorso seguire e i valori booleani sono un modo per svolgere tale compito.
Ci sono altri oggetti in Python che possono agire come booleani, ma per ora sarà sufficiente introdurre True e False. Tratteremo questo argomento in modo più approfondito in un prossimo post.
E allora?
All'inizio di questo post, ho menzionato che quando ho provato a conoscere i tipi di dati per la prima volta, il processo era noioso e l'argomento noioso. Proprio come l'adolescente impaziente al corso di geometria del liceo che pungola un insegnante con la domanda "Quando mai avrò bisogno di conoscere questa spazzatura inutile?"
Ho sentito che esaminare tutte queste regole sui tipi di dati era inutile. Ma ho imparato ad apprezzare le regole perché quando si tenta di infrangere queste regole (il più delle volte), si verificherà un errore. Se sei un programmatore responsabile e testa il tuo codice in anticipo, imbattersi in questi errori può salvarti dal commettere errori critici nel tuo codice quando conta davvero. Esaminiamo alcuni modi in cui potrebbero emergere errori.
Negli scenari in cui hai esercitato la matematica con i tipi numerici, hai notato che non sono state utilizzate virgole durante questi calcoli? Probabilmente sei abituato a digitare numeri con virgole (o decimali per i nostri amici europei!), ma se lo provi in Python, incontrerai alcuni comportamenti strani:
Hmmm; per niente quello che ti aspettavi. Inserendo una virgola in questo numero, abbiamo inconsapevolmente creato una "tupla"; non è necessario sapere cos'è una tupla al momento, ma è importante vedere che la virgola divide il numero in 500 e 0, che è molto diverso da cinquecentomila.
Questo esempio evidenzia anche un aspetto cruciale della scrittura del codice: un solo carattere digitato in modo errato può causare grossi problemi. All'inizio la correzione del codice è difficile, ma con la pratica migliorerai. Risultati o errori imprevisti non sono nulla di cui preoccuparsi; può sembrare spaventoso, ma di solito significa solo che qualcosa è andato perso nella traduzione.
Una regola che probabilmente ti aspetteresti è che quando provi ad aggiungere un numero intero e una stringa otterresti un errore:
E avresti ragione. Nella seconda riga di codice abbiamo provato ad aggiungere l'intero 1 alla stringa '1' che ha provocato un errore. Potresti pensare a te stesso “Questo è un esempio zoppo; quando mai qualcuno proverebbe ad aggiungere un numero intero a una stringa?" Saresti sorpreso di quante API restituiscano numeri come una stringa. Ci sono ottime ragioni per farlo, ma quando hai a che fare con un'API, presumere che un numero sarà un numero non è una scommessa sicura. Un ottimo esempio è la più recente API per i rapporti di Google Analytics. Dai un'occhiata allo screenshot dei dati che Google Analytics ti fornisce quando richiedi un rapporto. Sorpresa! Tutti i numeri (guarda i campi "valori") sono racchiusi tra virgolette.
Questo tipo di una chiave inglese nelle cose, non è vero? Lo farebbe, ma se leggi la documentazione dell'API in anticipo, ti aspetterai questo problema. Fortunatamente ci sono anche alcuni strumenti in Python che possono aiutarci, come la funzione int():
Inserendo la stringa '1' all'interno della funzione int(), stiamo dicendo a Python che vogliamo trattarla come un intero; ora puoi sommare questi numeri e andare avanti con la tua vita.
Queste sono solo alcune delle possibilità di come i tipi di dati possono determinare cosa puoi fare in Python, ma dimostrano anche che c'è quasi sempre un modo per aggirare questi problemi. Per favore contattami su Twitter se hai domande sui tipi di dati.