Operations Director Steve Pitchford tutoring two members of the team at Majestic.

Ci sono molto motivi per imparare a programmare in Python – anche per chi fa SEO. Questa guida vuole spiegare “come” programmare in Python, piuttosto che affrontare la problematica del perché.

Se ti interessa capire Python per il SEO, ti potrebbe interessare questo episodio del whiteboard Friday di Britney Muller. In quell’eposodio Britney parla dei benefici e vantaggi offerti dalla programmazione per i SEO.

Perché un’altra guida su Python per il SEO?

Ci sono molti tutorial che insegnano a programmare in Python. Tuttavia sono impostati e si rivolgono a chi vuol diventare programmatore e non a chi vuol fare le cose. Per questo abbiamo pensato che una guida così impostata troverà riscontro tra i SEO. A quest’ultimi interessa capire i concetti fondamentali della programmazione per poi concentrare l’attenzione su tematiche specifiche della SEO.

Questo è l’approccio usato per scrivere questa guida alla programmazione con Python per i SEO. Cominciamo con l’affrontare i concetti fondamentali della programmazione:

La programmazione è un’attività complessa e difficile da capire. Allo stesso tempo è un’attività che offre molte soddisfazioni. Questo è il primo di una serie di articoli. L’insieme degli articoli costituiscono la nostra guida alla programmazione per i SEO con un orientamento tecnico.

Il Python per i SEO

Molto SEO potrebbero avere già un’esperienza di programmazione senza nemmeno rendersi conto di averla. Ad esempio, potresti aver sviluppato dei programmi molto semplici a scuola o all’università. Forse hai scritto delle macro in Excel o delle regole per un work flow in Zendesk. Questa guida al Python per i SEO ha un approccio pragmatico e diretto. L’obiettivo è conoscere il linguaggio per aumentare la produttività.

In questa sezione introduciamo concetti che potrebbero essere già noti ad alcuni nostri lettori. Lo facciamo prima di passare agli aspetti tecnici della programmazione.

Lascia un commento se hai dubbi o suggerimenti su come migliorare questa guida. Rispondiamo volentieri alle domande, ma non possiamo offrire assistenza allo sviluppo di script o assistere nella correzione di programmi.

Gli obiettivi della Guida

Il nostro obiettivo è fornire quelle nozioni di base sul Python. Attraverso la creazione di piccoli programmi (script), si possono velocizzare i processi produttivi. In buona sostanza, conoscre Python per fare SEO può aiutarti a fare meglio il tuo lavoro.

Pur facendo riferimento a dati di Majestic, l’applicabilità di queste nozioni è generale. Le nozioni di questa guida sono applicabili anche in altri ambiti, anche se stiamo parlando di Python per il SEO. Non è necessario avere un abbonamento a Majestic per sfruttare appieno quanto imparerai qui.

Cominciamo con un esame pragmatico di come le persone utilizzano i computer per creare i programmi.

Cos’è la programmazione?

La programmazione è l’arte della preparazione di un insieme di istruzioni utilizzate da un software operante su un computer. Le istruzioni descrivono le attività che il computer capisce. Le istruzioni sono utilizzate per espletare i comandi definiti dal programma.

Un linguaggio di programmazione deve essere capito sia dal programmatore che dal computer

Le istruzioni preparate dal programmatore sono spesso espresse in un linguaggio complesso. Persone e computer riescono appena a capirle.

  • Le persone devono imparare ad esprimersi per comunicare con il computer. Devono spiegare cosa e come deve essere fatto.
  • Al computer occorre un programma capace di tradurre le attività definite dalle persone. Le attività deveono diventare un insieme di istruzioni comprensibili dal computer.

Questo succede perché persone e computer operano in modi completamente diversi. È quindi necessario un processo intermedio svolto dai linguaggi di programmazione.

Esistono molti linguaggi di programmazione. Per ciascuno di essi sono disponibili degli editor per lo sviluppo del software. Gli editor e gli ambienti per lo sviluppo del software che si chiamano “Integrated Development Enviroments”. Sono concettualmente simili a degli editori di testo specializzati che capiscono come è strutturato il linguaggio.
Questo corso si concentra sullo sviluppo di applicativi con il Python. Si parte dai principi base per arrivare alla creazione di veri e propri programmi.

Il Python (come molti altri linguaggi di programmazione) ha un insieme di comandi principali ed una struttura associata. Iniziamo con un’analisi di come vengono creati i linguaggi per passare poi all’esame del Python.

Come posso esprimere problemi in un modo comprensibile ai computer?

Nel paragrafo precedente c’è stato un passaggio in cui si è affermato che:

le istruzioni preparate dal programmatore sono spesso espresse in un linguaggio che le persone ed i computer riescono appena a capire

E questo perché il programma che scriviamo deve essere comprensibile sia a noi che al computer – una via di mezzo. Come per molte cose nella vita, c’è bisogno di trovare un compromesso per far funzionare le cose.

Prima di programmare dovremmo pianificare le cose che il computer deve fare per svolgere l’attività che gli vogliamo affidare

Il computer è una macchina molto potente. Tuttavia, necessita di un’attentissima guida per portare a compimento le cose: c’è bisogno di una certa mentalità e approccio per poter comunicare con il computer, ancor prima di scrivere una riga di codice. Dobbiamo pensare in termini di Algoritmi che possiamo utilizzare per svolgere le attività.

Cosa sono gli Algoritmi?

Un Algoritmo è un procedimento che risolve un problema in un numero finito di passi elementari, chiari e non ambigui.

Il termine deriva dalla trascrizione latina del nome del matematico persiano al-Khwarizmi, vissuto nel IX secolo d.c. Questi è uno dei primi autori ad aver fatto riferimento a questo concetto nel libro “Regole di ripristino e riduzione”.

Gli Algoritmi esprimono un modo di risolvere un problema comprensibile dalle persone ma non dai computer.

Tipicamente, gli Algoritmi sono espressi in una forma detta “pseudo-codice”. Si tratta di un insieme di eventi che un programmatore non avrebbe difficoltà a comprendere e fornire ad un computer.

Algoritmi e Pseudo codice

A volte i programmatori usano Algoritmi e Pseudo codice quando scrivono programmi ed applicativi software. A volte i programmatori utilizzano queste tecniche per spiegare un concetto ad altri programmatori.

Questo modo di operare potrebbe rappresentare un problema al lettore. Per poter esprimere un algoritmo in pseudo codice c’è bisogno di capire un minimo della programmazione. C’è quindi bisogno di esprimere i nostri pensieri con una struttura ed una logica tipica degli Algoritmi. È un problema ciclico – diventiamo più bravi a scrivere pseudo-codice attraverso l’implementazione di programmi che si basano su pseudo-codice!

Un modo comune per capire l’approccio e la mentalità richieste da quest’attività è quello di analizzare le attività quotidiane. Analizzando in ogni dettaglio cio che facciamo si arriva ad una procedura passo-passo che porta al compimento di un evento. Ci sono alcuni esempi riportati qui di seguito:

Gli Algoritmi possono essere pensati come una serie di passi molto semplici. Ogni passo deve essere eseguito sistematicamente per arrivare allo svolgimento di un’attività. Per questo abbiamo bisogno di pseudo codice. È un approccio che esplicita passo-passo ciò che bisogna fare in maniera chiara e consistente. Per fare un esempio, pensiamo a come si svolge un incontro tra persone sconosciute – la sequenza degli eventi potrebbe essere:

Presentarsi

Apprendere il nome della persona che si sta incontrando

Scoprire passioni e parlare con la persona
Pensare ad un argomento di attualità da affrontare in una conversazione
Stabilire contatto con gli occhi
Sorridere
Dire "Ciao, tu sei"... ed aggiungere il nome della persona - aggiungere quindi "vero?"
Dire "sono amico di" ( aggiungere il nome di un amico comune qui)
Dire "Il mio nome è" ( aggiungere il tuo nome )
Dire "Mi ha detto..." ( aggiungere nome amico comune )
Dire "che sei appassionato di..." ( aggiungere passatempo preferito) 
Dire ( aggiungere nome persona ) "mi piacerebbe sapere come a pensi a proposito di..." ( aggiungere argomento di attualità )

L’approccio alla problematica può sembrare forzato e artificioso. In realtà Serve per capire quant’è articolato e complesso l’elaborazione mentale di una pensiero apparentemente semplice. Come ad esempio nel caso di una conversazione tra due persone. Allo stesso modo è possibile schematizzare quasi tutte le nostre attività quotidiane.

Dall’esempio precedente emerge che:

  • Abbiamo espresso il problema in maniera lineare.
  • l’Algoritmo è una procedura che viene eseguita passo-passo se non ci sono altre indicazioni.
  • Ogni comando è semplice e comandi che richiedono azioni simili sono espressi in modo consistente

Con l’esperienza, persone diverse scrivono pseudo-codice molto simile. Questa capacità si acquisisce con il tempo. Per imparare a programmare non è necessario conoscere la lingua degli algoritmi come un programmatore esperto. Per adesso, la cosa importante è pensare ad un problema in modo da esplicitarne la soluzione. E questo richiede un approccio consistente e una modalità di tipo passo-passo.

Per ulteriori informazioni ed approfondimenti sugli Algoritmi, consulta la guida BBC bitesize.

Andando oltre gli Algoritmi semplici (Lineari) – Ripetizione e Decisioni/Scelte

L’Algoritmo delle presentazioni illustrato è piuttosto semplice. Esprime un problema con una serie di azioni che devono essere eseguite in sequenza. Ma questo approccio è valido solo per una classe assai ristretta di problemi molto semplici.

I computer sono molto bravi ad eseguire istruzioni ripetitive per arrivare ad un risultato finale.

Nel linguaggio dei computer lo sviluppo sistematico della stessa istruzione si ottiene utilizzando dei Loop. Questi sono utilizzati insieme a delle azioni di controllo che verificano l’avverarsi di alcune condizioni che determinano l’interruzione del Loop.

In questo modo si esprime una decisione o scelta per stabilire SE (=IF) una condizione si verifica.

Questo ci permette di esprimere problemi con un approccio che è più vicino al modo di operare dei computer. Supponiamo di riprendere l’Algoritmo che abbiamo scritto per l’incontro tra due persone. Proviamo ad adattarlo per risolvere un problema con il computer. Supponiamo di voler inviare una mail, richiedere un link oppure inviare molte email per richiedere un link. Tralasciando la brutalità dell’approccio per il momento, possiamo utilizzare il concetto di Loop per scrivere di nuovo l’Algoritmo.

Cosa sono i Commenti?

Cerchiamo di avere una maggiore consistenza nel modo con cui esplicitiamo ogni istruzione e introduciamo una novità: i commenti.

I commenti sono una forma di documentazione scritta direttamente nel programma. I commenti non sono eseguibili dal computer, ma servono al programmatore per capire le azioni che il programma esegue.

Qui di seguto è riportato del pseudo codice. Le linee che iniziano con il simbolo “#” sono tutti commenti che aiutano a capire cosa sta facendo il programma.

 # Prepara il foglio di calcolo Excel dei dati del destinatario contenente righe di:
# Destinatario dell'email",
# I "nomi" dei destinatari,
# Il "titolo" di un post recente che hanno scritto su qualcosa di importante
Loop attraverso ogni riga del foglio di calcolo:
    Prepara e-mail all'indirizzo e-mail dalla riga
    Aggiungi riga "Caro" (aggiungi "name" dalla riga qui)
    Aggiungi riga "Mi chiamo Ann Eggsample"
    Aggiungi riga "Mi è piaciuto molto il post che hai scritto su" (aggiungi "titolo" dalla riga qui)
    Aggiungi riga "Mi ha davvero colpito, stavo per commentare il tuo post"
    Aggiungi riga "Ma ho pensato così tanto che ho finito per scrivere un mio post sull'argomento"
    Aggiungi riga "Mi farebbe molto piacere se tu potessi leggerlo e farmi sapere cosa ne pensi"
    Aggiungi riga "o mettere link se pensi che aggiunge valore al dibattito in atto"
    Aggiungi riga "il tuo articolo è iniziato".
    Aggiungi riga ""
    Aggiungi riga "Cordiali saluti",
    Aggiungi riga "Ann".
    Invia  email

End Of Loop.

Possiamo migliorare ancora l’Algoritmo aggiungendo una opzione per caratterizzare la mail. Infatti, si può personalizzare il contenuto che dipende dalla data di pubblicazione:

   
# Prepara il foglio di calcolo Excel dei dati del destinatario contenente righe di:
# Destinatario dell'email",
# I "nomi" dei destinatari,
# Il "titolo" di un post recente che hanno scritto su qualcosa di rilevante
# La data in cui è stato scritto il post

Loop attraverso ogni riga del foglio di calcolo:
   Prepara e-mail all'indirizzo e-mail dalla riga
   Aggiungi riga "Caro" (aggiungi "name" dalla riga qui)
   Aggiungi riga "Mi chiamo Ann Eggsample"
   Aggiungi riga "Mi è piaciuto molto il tuo post " (aggiungi "titolo" dalla riga qui)

   Se ("Data della posta" dalla riga è più di due anni fa), procedi come segue:

      Aggiungi riga "Mi ha davvero colpito, stavo per commentare il tuo post"
      Aggiungi riga "Ma ho pensato così tanto che ho finito per scriverne uno io sull'argomento"
      Aggiungi riga "Ma ho ho notato che il tuo post aveva più di due anni."
      Aggiungi riga ""
      Aggiungi riga "Ho dato un'occhiata al tuo sito, ma non sono riuscito a trovare nulla di più aggiornato",
      Aggiungi riga "se stai lavorando su un aggiornamento al post, potresti farmelo sapere"
      Aggiungi riga "quando viene rilasciato in modo che io possa aggiungere un link dal mio".
      Aggiungi riga ""
      Aggiungi riga "Penso che aiuterebbe i tuoi utenti se anche tu mettessi un link dal tuo post"
      Aggiungi la riga "al mio post nel frattempo, ma lo lascerò a te decidere".
      Aggiungi riga ""
      Aggiungi riga "Non vedo l'ora di avere tue notizie"
      Aggiungi riga "Ann".
   Altrimenti se ("Data della posta" dalla riga è più recente), procedi come segue:

      Aggiungi riga "Mi ha davvero colpito, stavo per commentare il tuo post"
      Aggiungi riga "Ma ho pensato così tanto che ho finito per scrivere un mio post sull'argomento"
      Aggiungi riga "Mi piacerebbe se tu potessi leggerlo e farmi sapere cosa ne pensi"
      Aggiungi riga "o mettere un link se pensi che arricchisce il dibattito in corso sull'argomento"
      Aggiungi riga "il tuo articolo è iniziato".
      Aggiungi riga ""
      Aggiungi riga "Cordiali saluti",
      Aggiungi riga "Ann".
   Fine di se scelta
   Invia una email
End Of Loop

Ora abbiamo del pseudo codice per un Algoritmo che manda email personalizzate. Non solo, ma l’algoritmo invia la mail ai destinatari in base ai contenuti dei post. stiamo creando software!

Fin qui abbiamo visto:

  • Come I linguaggi di programmazione sono un compromesso tra ciò che le persone ed i computer riescono a capire
  • L’espressione di un problema come un algoritmo composto da una serie di istruzioni
  • Come si scrive un Algoritmo con pseudo-codice
  • I Loop
  • La procedura decisionale basata su scelte condizionate da “IF”

Prima di passare a scrivere ed eseguire codice in Python dobbiamo affrontare altri due concetti chiave della programmazione:

  • Come un linguaggio di programmazione si ricorda le cose
  • Come si organizza molto codice per renderlo più leggibile

Le variabili

In questa sezione esaminiamo la necessita di ricordare le cose in un linguaggio di programmazione.

I Computer moderni possono memorizzare quantità inimmaginabili di dati, programmi immagini e video. I programmatori necessitano di modalità con cui manipolare i dati nello store o in memoria.

Tutte le informazioni utilizzate da un programma del computer devono essere memorizzate. Anche se le informazioni devono essere custodite per un periodo di tempo limitato. Questa esigenza è applicabile per ogni tipologia di dato, come quelli già citati, oppure fogli Excel o database.

Analizzeremo come gestire le informazioni in un foglio Excel più avanti in questo corso. Per il momento vediamo come un computer può memorizzare e manipolare il nome di un individuo. Facciamo l’anallisi di uno pseudo-codice molto semplice che saluta l’utente del programma.

L’uso dei commenti

In questo esempio introduciamo una sottile sfumatura nell’uso dei commenti. Vediamo come aggiungere dei commenti alla fine di ogni riga del programma. Le istruzioni su una linea vengono eseguite fino a quando non s’incontra il simbolo “#”. Tutto ciò che segue il “#” non verrà eseguito. È da considerarsi solo per le persone che leggono il codice:

# pseudo-codice per salutare un utente
Mostra messaggio "Qual è il tuo nome?"
# in qualche modo otteni e memorizza il nome qui
Mostra messaggio "Ciao" # in qualche modo aggiungi il nome dell'utente qui

Il Concetto di INPUT e Variabili

Molti linguaggi di programmazione hanno il concetto di “input” – il processo di acquisizione di un dato che viene fornito dall’utente. I linguaggi facilitano l’acquisizione e la memorizzazione di piccole quantità di dati come questo utilizzando le cosiddette “Variabili”.

Cos’è una Variabile?

Le “Variabili” sono dei contenitori virtuali che contengono piccole quantità di dati.

Le variabili sono molto utilizzate nella programmazione. Proprio per questo motivo, i linguaggi di programmazione facilitano la creazione, l’accesso e la modifica di Variabili.

Ogni linguaggio ha le sue regole per la creazione e gestione delle Variabili. Ci sono molti documenti online che descrivono le regole per la creazione di variabili con Python.

La variabile in pseudo codice può essere una parola qualsiasi. Ad esempio una parola con tutt’i caratteri minuscoli. Fanno eccezione i commenti o delle frasi virgolettate e che si rivolgono all’utente.

Uso delle variabili

Dal momento che la nostra Variabile deve memorizzare il nome dell’utente, la possiamo chiamare “name”. Esprimiamo l’abilità di poter acquisire un input dall’utente utilizzando “Input”. Esprimiamo inoltre l’intento di voler associare il valore ottenuto dall’utente alla variabile chiamata name attraverso il segno uguale.
A questo punto siamo pronti per scrivere la procedura “Hello User” in pseudo-codice:

# Pseudocode to greet a user
Show Message “What is your name?”
name = Input
Show Message “Hello ” # somehow add name of user here  

Una ulteriore considerazione a proposito di questo breve snippet di pseudo-codice. Vogliamo sapere come si esprime l’inclusione del nome dell’utente dalla variabile “name” nel saluto offerto dal programma.

Per il momento consideriamo la cosa fattibile, introducendo il nome della variabile in parentesi graffa così:

# Pseudocode to greet a user
Show Message “What is your name?”
name = Input  
Show Message “Hello {name}”

Il nostro pseudo-codice prende le sembianze di un vero e proprio linguaggio di programmazione. In effetti, abbiamo una serie di istruzioni con nomi consistenti. Inoltre c’è la creazione di una variabile che memorizza l’input dell’utente. Successivamente all’acquisizione, questo input è utilizzato per restituire il valore che è stato inserito dall’utente su suggerimento del programma.

Le Funzioni

L’ultimo concetto che affrontiamo in questa sessione è l’aspetto organizzativo del nostro codice. Inparticolare vediamo come articolare il codice in elementi più piccoli (e quindi più leggibili) partendo da molte righe di codice.

Finora abbiamo espresso pseudo-codice come un insieme di istruzioni lineari, organizzate per righe che si possono eseguire per completare un’attività. Abbiamo suggerito che il pseudo-codice è un modo di esprimere un problema. Un programmatore lo potrebbe utilizzare prendendolo a riferimento per risolvere un problema.

Procedure con insiemi di istruzioni lineari come quelli fin qui esaminati sono adatti per alcune tipologie di problemi. Tuttavia questo approccio che esprime codice come una lunga lista di istruzioni lineari presente due problemi:

  1. La risoluzione di alcuni problemi richiede uno sviluppo più complesso rispetto al semplice loop. Queste istruzioni devono essere eseguite più volte durante l’esecuzione del programma.
  2. A volte l’uso di codice che esplicita tutte le istruzioni rende il programma più difficile da interpretare e capire.

La definizione di Funzione

Le Funzioni offrono una soluzione ad entrambi questi problemi. Le Funzioni sono una serie di istruzioni che non sono eseguite immediatamente. Esse formano una libreria di codice che può essere utilizzata quando serve.

Una Funzione ha tre caratteristiche:

  • un nome;
  • una serie di istruzioni;
  • Una serie di parametri (di cui parleremo più avanti).

Riprendiamo il nostro Algoritmo per la gestione della mail per eliminare del codice e renderlo più leggibile:

Il codice per la gestione della mail

#  Prepare excel spreadsheet of recipient data containing rows of: 
#  Recipient “email”, 
#  Their “name”, 
#  The “title” of a recent post they have written on something relevant 
#  The date the post was written 
Loop Through Each row Of The spreadsheet: 
   If ( “Date of Post” from row is more than two years ago ) Do: 

      # send the old post email

   Otherwise If ( “Date of Post” from row is more recent ) Do:

      # send the new post email

   End Of If Choice
End Of Loop.  
Abbiamo nascosto i dettagli della implementazione che riguardano l'invio della mail nei due casi esaminati (invio della mail per i post vecchi e per i post nuovi) con l'intento di rendere il codice più chiaro e leggibile. Possiamo utilizzare le funzioni per implementare l'invio della mail nei due casi.

Come facciamo a creare un Funzione? Così come per le Variabili, le Funzioni sono facili da creare. Nel nostro pseudo-codice ne possiamo creare seguendo questa traccia:
Function function_name:
     # Step 1 for this function
     # Step 2 for this function
     # Step 3 for this function
     # Step 4 for this function
     # Any more steps for this function … 
 End Function

Abbiamo utilizzato ancora il formato già in uso per stabilire la fine della Funzione. Abbiamo utilizzato “End Of Loop” e End Of If Choice”. Vogliamo mantenere una coerenza nella definizione del nostro pseudo-codice. Per questo dovremmo utilizzare “End Of Function”. Per una questione di semplicità e di compattezza di linguaggio, basta indicare “End Function”. Sappiamo infatti che tutti capiranno il nostro intento.

Per esprimere l’intento di voler utilizzare la funzione creata possiamo adottare la forma:

Call Function function_name:

E, nell’ottica di semplificare, eliminiamo termini inutili:

Call function_name:

Una cosa importante da notare

Questo è il nostro pseudo-codice. Noi potremmo decidere di scegliere parole diverse per definire ed eseguire le Funzioni, mantenendo una coerenza nell’uso del linguaggio. Potremmo esprimere il concetto di utilizzare una Funzione scegliendo “Execute function_name”, “Bosh Function_name”, oppure qualcosa di ancora più delicato. Potremmo, ad esempio, aggiungere delle parentesi tonde alla fine del nome della Funzione:

 "function_name()". 

L’importante è mantenere la coerenza nel modo in cui le funzioni vengono chiamate nel nostro pseudo-codice.

L’Analisi delle Variabili

Quando abbiamo analizzato le variabili, abbiamo suggerito la necessità di una regola che potesse identificare una variabile. Ci siamo posti il problema di capire cosa fosse una istruzione. Abbiamo suggerito l’uso di parole tutte in minuscolo e che le istruzioni da eseguire cominciassero con la maiuscola. Per il momento ampliamo il ventaglio delle possibilità di definire le variabili. Introducendo l’uso del trattino basso “_” in modo da poter avere nomi di variabile composte da più parole come nome_variabile. Possiamo prendere in prestito questa regola per l’attribuzione dei nomi e utilizzarla anche per le Funzioni.

A proposito del Pseudo Codice

Una cosa importante da notare

Questo è il nostro pseudo-codice. Noi potremmo decidere di scegliere parole diverse per definire ed eseguire le Funzioni, mantenendo una coerenza nell’uso del linguaggio. Inoltre, potremmo esprimere il concetto di utilizzare una Funzione scegliendo “Execute function_name”, “Bosh Function_name”. Si potrebbe scegliere qualcosa di ancora più delicato come ad esempio l’aggiunta di parentesi tonde come “function_name()“. L’importante è mantenere la coerenza nel modo in cui le funzioni vengono chiamate nel nostro pseudo-codice.

Variabili e l’uso del trattino basso

Analizzando le variabili, abbiamo suggerito la necessità di una regola che potesse identificare una variabile e cosa fosse una istruzione. Abbiamo suggerito l’uso di parole tutte in minuscolo e che le istruzioni da eseguire cominciassero con la maiuscola. Per il momento ampliamo il ventaglio delle possibilità di definire le variabili. Introduciamo l’uso del trattino basso “_” in modo da poter avere nomi di variabile composte da più parole come nome_variabile. Possiamo prendere in prestito questa regola per l’attribuzione dei nomi e utilizzarla anche per le Funzioni.

Adesso possiamo aggiungere di nuovo il testo della mail così:

Il Codice

Prepare excel spreadsheet of recipient data containing rows of:
 Recipient “email”,
 Their “name”,
 The “title” of a recent post they have written on something relevant
 The date the post was written
 Loop Through Each row Of spreadsheet:
 If ( “Date of Post” from row is more than two years ago ) Do: 

       Call old_post_email
    Otherwise If ( “Date of Post” from row is more than two years ago ) Do:
       Call new_post_email
    End If
 End Loop
 Function old_post_email:
    # Prepare Email To ( email address from row )
    Add Line “Dear” (add “name” from row here )
    Add Line “My name is Ann Eggsample,”
    Add Line “It really resonated with me, I was going to comment on your post,”
    Add Line “But thought of so much that I ended up writing my own post”
    Add Line “It was only then I noticed that your post was over two years old.”
    Add Line “”
    Add Line “I had a look on your site, but could not find anything more up to date,”
    Add Line “if you are working on an update to the post, could you let me know”
    Add Line “when it is released so I can link to it.”
    Add Line “”
    Add Line “I think it would help your users if you linked from your post”
    Add Line “to my post in the meantime, but I will leave that to you.”
    Add Line “”
    Add Line “Look forward to hearing from you,”
    Add Line “  Ann.”
    Send Email
 End Function
 Function new_post_email:
    # Prepare Email To ( email address from row )
    Add Line “Dear” (add “name” from row here )
    Add Line “My name is Ann Eggsample,”
    Add Line “I loved the post you wrote on ” ( add “title” from row here )
    Add Line “It really resonated with me, I was going to comment on your post,”
    Add Line “But thought of so much that I ended up writing my own post”
    Add Line “I would love it if you could read it and let me know what you think,”
    Add Line “or link to it if you think it adds to the valuable and relevant debate”
    Add Line “your article started.”
    Add Line “”
    Add Line “Kind Regards,”
    Add Line “  Ann.”
    Send Email
 End Function

Adesso abbiamo una dichiarazione d’intenti che è piuttosto chiara. Spiega l’Algoritmo in pseudo-codice e ne identifica le procedure. Nel caso specifico, descrive la procedura che deve essere eseguita per inviare le mail. L’invio della comunicazione avviene utilizzando le Funzioni per separare la logica nella scelta di invio della mail.

In alcuni punti la procedura è espressa in Inglese. Nei primi esempi lo abbiamo esplicitato in Italiano per rendere tutto facilmente comprensibile. L’uso della lingua non è un problema per il nostro pseudo-codice. Ci offre l’opportunità di riflettere per esprimerci con un linguaggio ancor più preciso. In questo modo si arricchisce il vocabolario per renderlo capace di esprimere concetti ancora più complessi.

Rimane una ultima cosa da affrontare

Abbiamo parlato di una modalità con cui esprimere gli step di una funzione. Abbiamo riportato una regola per la nomenclatura delle Funzioni. È rimasto in sospeso un terzo aspetto legato ai parametri a cui abbiamo accennato nei paragrafi precedenti.

Sappiamo che le funzioni new_post_email e old_post_email devono sapere su quale riga di programma si sta operando per poter funzionare. Nel pseudo-codice precedente è sottinteso ed è quindi implicito. Ma quando si scrivono programmi per computer,

è considerata buona norma informare esplicitamente una Funzione dei dati di cui ha bisogno per funzionare.

I Parametri

In pratica questo è possibile utilizzando una forma speciale di variabile chiamata parametro. Un parametro esiste per passare i dati ad una funzione. In questo modo il dato viene passato alla Funzione quando essa è chiamata.

Passare i dati alle Funzioni medainte i parametri è molto potente. E questo perché permette l’elaborazione di diversi dati con la stessa funzione.

Come si passano i parametri ad una Funzione?

I parametri possono essere dichiarati come parte della Funzione per poi essere utilizzati dalle procedure definite nella Funzione. Per meglio capire questo concetto facciamo un esempio. Riprendiamo il pseudo-codice creato all’inizio per salutare una persona, poi trasformato per salutare cinque amici:

# Pseudocode to greet five friends
greet(“bob”)
greet(“sue”)
greet(“rita”)
greet(“jeff”)
greet(“andy”)
Function greet ( name ):
Show Message “Hello {name}”
End Function

Funzioni e parametri sono una parte essenziale della programmazione ma aggiungono un livello di complessità. Non ti preoccupare se hai la percezione di non aver capito appieno il concetto di parametro. Torneremo a parlare di Funzioni e parametri nelle sessioni che seguiranno.

Concludendo

In questo articolo abbiamo affrontato alcuni concetti generali della programmazione di un computer. Abbiamo descritto il ruolo dei linguaggi di programmazione. Abbiamo suggerito una processo per lo sviluppo di software. Esaminando aspetti essenziali della programmazione, abbiamo cercato di dare una risposta alla domanda:

Che cos’è la programmazione dei Computer?

Le persone offrono indicazioni ai computer per fornire istruzioni su come risolvere problemi mediante i programmi.

Un programma è un insieme di istruzioni richiesti dal computer. Questo li deve elaborare. Le istruzioni sono scritti in un linguaggio comprensibile no solo dalle persone, ma anche dai computer.

Dobbiamo pensare ai problemi in un certo modo per poter esprimere procedure adatte al computer per risolverli.

Se possiamo pensare ad una serie di step per sviluppare un processo in maniera strutturata, allora possiamo definire quella serie di step un Algoritmo.

Gli Algoritmi possono essere espressi in “Pseudo Codice”.

Pseudo codice è un insieme di istruzioni coerenti. Le istruzioni hanno le sembianze di un programma ma non sono eseguibili da un computer.

Ecco un processo semplice per sviluppare software:

  1. Individua una opportunità o problema che vorresti risolvere con il computer
  2. Pensa a come si potrebbe risolvere con un Algoritmo
  3. Esprimi la risoluzione del problema scrivendo pseudo-codice che rappresenta l’Algoritmo
  4. (Da fare) Converti il pseudo codice in un programma

Componenti fondamentali dei programmi per computer:

ConceptExplanation
AlgorithmA set of steps which express how to solve a problem. The steps should be expressed in a way that is consistent and understandable to programmers
Choices/DecisionsThe ability for a program or algorithm to execute a set of steps if a condition is met
LoopA way of expressing that certain steps should be repeated until some condition(s) are met or some data is exhausted.
FunctionA set of steps that are not processed immediately, but instead, are remembered, and can be used one or more times by the program or algorithm.
A Function has a name and (optionally) some parameters which can be used to pass information into it.
AVariableA named store where small bits of information can be remembered

Nella prossima sessione, l’articolo introdurrà il Python, passando da pseudo-codice e Algoritmi a programmi reali!

Leggi il secondo articolo della serie Python per il SEO:

Libera Traduzione del Post di Steve Pitchford

Learn Python for SEO