Nel primo articolo per il nuovo anno (Buon 2016 a tutti!) ho pensato di parlare un po’ diย Python, piรน che altro perchรฉ, come avevo accennato introducendolo qui รจ un linguaggio di programmazione di gran lunga piรน semplice da imparare di C++ e coloro che sanno giร utilizzare quest’ultimo sono grandemente avvantaggiati.
Cosรฌ, hoย pensato di fare un piccolo articolo dove vi mostro come fare un programmino per raccontare una storia, in vecchio stile, per chi รจ ancora alle prime armi con la programmazione o chi non ha ancora deciso quale linguaggio imparare per primo.
Ho recuperato allora un vecchio programmino semplice che avevo scritto in inglese un bel po’ di tempo fa tanto per approcciarmi a questo linguaggio.
Uno dei vantaggi di Python รจ la mancanza dell’obbligo di uso di un compiler perchรฉ, una volta scritto il programma e salvato come file .py esso si puรฒ facilmente avviare cliccandoci sopra due volte.
In ogni caso, se foste curiosi di vedere cosa viene fuoriย potete andareย su questo link https://repl.it/Bbjs/1ย in cui ho copiato ed incollato il programma scritto qui sotto e cliccare in alto Run (Corri) cosรฌ da vederne il risultato nella parte destra della finestra.
Quello che vi serve per lavorare su Python comunqueย sono due cose: Python stesso scaricabile a all’indirizzoย http://www.python.it/download/ย e un code editor (ovvero un software che vi permette di scrivere e mettere insieme il vostro programma) come, per esempio Notepad ++, semplice da usare e gratuito, che potete trovare al seguente link: https://notepad-plus-plus.org/download/v6.8.6.html.
Vi ricordo, prima di cominciare che potrete trovare su internet e sul sito stesso di Python una miriade di tutorial ben fatti ed ad esso dedicati anche in lingua italiana.
Vediamo allora un esempio di storia interattiva e, poi, vi spiegherรฒ brevemente le specifiche:
print ("") print ("Welcome to your story") print ("--------------------------------------------") print ("") # Presentation print ("Hello reader") import random name = input ('What is your name? ') print ("Hello " + name) # Gender gender = input ('Are you male or female? ') print ("You are a " + gender) day = input ('What day is it? ') print ("Today is " + day) if gender == "female": pronoun = "she" elif gender == "male": pronoun = "he" # Roles, names and places roles = ["warrior", "hunter", "mage", "priest"] names = ["Olaf", "Antea", "Ekphy", "Guy"] actions = ["slay", "heal", "save", "rescue", "eat", "kill", "lick"] places = ["IronyCity", "SadCity", "BoldCity", "YukkyCity"] actor_name = random.choice (names) actor_role = random.choice (roles) quest = random.choice (actions) magic_place = random.choice (places) # The story begins story = "Once upon a time, there was a " + actor_role + " called " + name + "; " + pronoun + " and some friends found themselves in the shitty land of " + magic_place + ". This land was ruled by " + actor_name + " the " + actor_role + ". All of a sudden a mysterious voice spoke to them from high in the sky and said: <<You must " + quest + " " + actor_name + " the " + actor_role + " to lift the curse of not being able to use technology...>>. " print (story)
Come possiamo notare il piccolo programma รจ stato diviso in cinque sezioni come siamo abituati a fare anche con C++ per rendere piรน leggibile e semplice la correzione di eventuali errori. I punti e virgola perรฒ, qui, non sono necessari e come possiamo notare la lettura del programma risulta molto semplice anche a chi di programmazione non sa nulla poichรฉ il linguaggio di Python punta maggiormente su una leggibilitร maggiore rispetto a C++ ed altri linguaggio.
PRIMA PARTE: IL TITOLO
Il comando printย funziona come il cout di C++, ovvero dร l’ordine al computer di scrivere ciรฒ che segue all’interno delle parentesi tonde (nel caso di C++, invece, vengono utilizzate le virgolette <<). Nella secondaย riga di comando e nella quarta abbiamo un (” “) che significa, semplicemente, di saltare una riga e lasciarla vuota. La scritta (“Welcome to your story”), ovvero benvenuto/a nella tua storia, รจ una semplice introduzione o se vogliamo titolo per il programma seguito da alcuni trattini (segnalati sulla riga quattro) che servono semplicemente come estetica per suddividere il titolo dal resto che seguirร .
SECONDA PARTE: LA PRESENTAZIONE
La presentazione, come il titolo precedentemente, viene segnalata da un #ย che funziona esattamente come il doppio slash // in C++, cioรจ come commentoย o sottotitolo. Come abbiamo visto il print farร dire al nostro programma un “Hello reader” (Ciao lettore/lettrice). Il comandoย importย random รจ quello che viene generalmente chiamato modulo random che ci dร la possibilitร di generare numeri a caso o, in questa specifica situazione, di recuperare casualmente un elemento dalle liste che troveremo successivamente nel programma come, per esempio, nomi, ruoli, azioni e luoghi.
Nella riga dodici, quindi, il nostro software chiederร all’utente come si chiama con il comandoย nameย = input (‘What is your name? ‘). Qui notiamo che ho personalmente scelto di usare gli apostrofi ‘ ‘ anzichรฉ le virgolette ” ” ma, in realtร , non fa alcuna differenza: potremo infatti utilizzare entrambe le possibilitร senza troppi problemi; ho fatto questa scelta per il semplice motivo di rendere piรน facile con un colpo d’occhio la suddivisione tra gli input dati dal programma all’utente e ciรฒ che, invece, il computer scriveva direttamente sullo schermo senza richiedere una risposta.
Ovviamente, essendo il nostro programma very polite, una volta saputo il nome dell’utente, gli darร il benvenuto con un Hello + il nome inserito. Notare che, quindi, l’opzioneย name dovrร ritrovarsi nella stessa forma sia per quanto riguarda l’input che la riga successiva od il programma non sarร in grado di riscrivere il nome inserito dall’utente.
TERZA PARTE: IL GENDER
Per fortuna, in inglese, c’รจ qualche problema in meno nella resa del gender quando scriviamo e, quindi, ci limitiamo al she/he (lei/lui) senza dover andare a pasticciare nella declinazione dei verbi o degli aggettivi. Per cui il nostro programma si limiterร a richiedere un altro input dall’utente per sapere se รจ maschio o femmina (male or female) allo stesso modo in cui, precedentemente, gli/le aveva chiesto come si chiamava. E, tanto per aggiungere una cosa in piรน, gli/le chiederร anche che giorno รจ.
Ora, notiamo il solito if-statement che avevamo visto anche in C++ ma molto semplificato rispetto a questi. Il comandoย elif รจ un semplice acronimo di else if utilizzato tipicamente da Python. Quindi se l’utente รจย female il nostro programma utilizzerร il pronoun (pronome) femminile altrimenti quello maschile. Vanno, ovviamente, notati i due punti alla fine della riga diย ifย edย elif che non vanno assolutamente dimenticati.
QUARTA PARTE: RUOLI, NOMI E LUOGHI
Siamo, quindi, arrivati a quello a cui si riferiva il comando che abbiamo visto nella seconda parteย importย random ovvero il luogo da cui il nostro programma prenderร a caso alcune possibilitร che abbiamo reso disponibili. Essendo questo una sorta di storia randomizzata di tipo fantasy sceglieremo, allora per esempio, come ruoli,ย roles,ย warrior, hunter, mage, priest (guerriero, cacciatore, mago, prete) prestando attenzione nel chiuderli tra parentesi quadre, metterli tra virgolette e dividerli ad uno ad uno con una virgola. Faremo, quindi, la stessa cosa con i nomi, le azioni ed i luoghi da noi inventati.
Dopodichรฉ, per recuperare gli elementi in modo casuale dalle liste aggiungeremo, per esempio per una missioneย questย = random.choice (actions)ย cosicchรฉ, quando nella storia verrร segnalato di inserire una missione il programma sceglierร a caso una delle azioni presenti nella lista precedente, ovvero,ย slay, heal, save, rescue, eat, kill, lick (cacciare, guarire, salvare, recuperare, mangiare, uccidere, leccare).
QUINTA PARTE: LA STORIA INIZIA
Qui, ci limiteremo a scrivereย storyย =ย seguito dalla trama tra virgolette. Ovviamente, dovremo fare attenzione, ogni qualvolta vorremo inserire un nome, un’azione, un luogo od un ruolo a chiudere le virgolette, aggiungere un belย + sia prima che dopoย il nominativo dell’elemento che vogliamo far comparire.
Infine, con il comando print (story) il programma scriverร la nostra narrazione. Potremo anche notare che ogni volta che rigiocheremo da capo alla storia essa cambierร leggermente poichรฉ gli elementi inseriti casualmente dal programma muteranno.
Per esempio, in questo momento, facendo correre il programma mi รจ apparsa la seguente storia:
ย E a voi quale storiaย vi ha generato il programma?
Lascia un commento