Tipi, variabili e funzioni

python_sauron

Eccoci alla seconda puntata dei tutorial su Python!
In questo post vedremo 3 cose (come si capisce dal titolo), sotto con la prima!

Tipi di dati

In praticamente tutti i linguaggi di programmazione esistono 3 principali categorie di tipi di dati: i numeri, le stringhe e i booleani.

Cosa siano i numeri è chiaro…
Esempi

Le stringhe sono insiemi di lettere, come ad esempio una parola o una frase
Esempi:

I booleani invece sono solamente due valori: vero e falso.
Servono principalmente a verificare delle condizioni, come ad esempio se una torta è cotta (vedi l’articolo Imparare a programmare da zero)

Variabili

Vediamo insieme questo semplice programma:

La prima riga, quella che comincia con #, è un commento, cioè una parte del programma che viene ignorata dal computer.
Solitamente sono appunti scritti dai programmatori per aiutarsi nella lettura del codice.

Nella seconda riga invece creiamo una variabile chiamata “nome” e ci mettiamo dentro quello che scrive l’utente.
“raw_input()” in pratica è una funzione che equivale a dire “prendi tutto quello che viene scritto finchè non si schiaccia invio”. Cosa sia una funzione lo vediamo dopo.
Una variabile invece possiamo immaginarcela cone una specie di scatola vuota dove dentro ci si può mettere qualcosa, un numero, una stringa, qualunque cosa.

Nella terza riga scriviamo semplicemente “Ciao” e ci attacchiamo dopo il nome che l’utente ha appena inserito.

In alcuni linguaggi di programmazione le variabili devono essere dichiarate prima di poterle utilizzare, e ne deve essere specificato il tipo (es. numero, stringa, ecc.), nel senso che QUELLA variabile potrà contenere SOLO “cose” di QUEL tipo.
Per capirci, immaginiamo questo:

Tradotto in codice, lo STESSO identico programma scritto in C# risulterebbe così:

(prendetelo per buono, non sto a spiegare il C#, qui stiamo parlando di python! :D)

In python, come possiamo vedere dal codice scritto sopra, tutti questi problemi non si pongono: ci serve una variabile? Ne creiamo una al volo e la utilizziamo!
Comodo no?

Funzioni

Ora ampliamo il programmino di prima aggiungendoci una funzione:

(si, così non funziona, un attimo e vediamo perchè)

In cima abbiamo creato (o definito) la funzione “PiuUno”.
Una funzione è come una specie di programma a sua volta, un pezzo di codice che può essere riutilizzato più volte “chiamandolo” in diversi punti del programma.
Le funzioni possono prendere uno o più parametri (o anche nessuno) e possono ritornare qualcosa (o no).

Mi spiego utilizzando il codice appena scritto: la nostra funzione PiuUno non fa altro che prendere un valore, la x, e restituire il valore preso aggiungendoci 1.
Quindi ad esempio PiuUno(4) sarà uguale a 5, abbastanza semplice, no?

Ah, come per le variabili, in alcuni linguaggi viene richiesto di dichiarare il “tipo di ritorno” della funzione, che nel nostro caso potrebbe essere int, cioè numeri interi, ma anche stavolta il python fa un’eccezione e, ad esempio, una funzione come quella qui sotto può prendere sia numeri che stringhe senza problemi

e come risultato avrà

Alla faccia del C#! Eheheh :D

Si, ma…

Ok, appurato cosa siano le funzioni, allora perchè il nostro codice non funziona?
Il messaggio di errore che esce quando proviamo a eseguirlo è

Ossia, una roba simile a quello che ci viene detto dalle elementari: non puoi sommare le pere con le mele.

La nostra funzione PiuUno aggiunge 1, che è un numero, a x, che nel nostro caso è una stringa (raw_input, la funzione che legge quello che viene scritto dall’utente, restituisce sempre una stringa).
Quindi dobbiamo effettuare un’operazione di cast, ossia dobbiamo chiamare delle funzioni speciali per trasformare il parametro da stringa in numero per sommarci 1, e poi da numero in stringa per restituirla e poterla concatenare al resto senza problemi:

e ta-daaaan!

Nota:
Come avrete notato, all’interno del codice non ho usato le lettere accentate: non è che non so scrivere, è che i linguaggi di programmazione sono al 99.99999% in inglese, gli inglesi non hanno le lettere accentate e di conseguenza non si usano neanche mentre si programma.
Poi volendo c’è modo di usarle, ma di solito non si fa…
Poi volendo c’è Swift, il nuovo linguaggio di programmazione della Apple che permette di utilizzare anche le emoji, ma vabbè…

poopy-swift-code-example

Giochino!

Guarda un insieme delle cose di cui abbiamo parlato finora usate all’interno di un giochino:

Figo eh?
La struttura è abbastanza semplice, e i commenti aiutano a capire cosa sta succedendo riga per riga.
Niente panico se non capite cosa sono quegli if e i while, li vedremo la prossima volta ;)
Sapreste trovare un modo per barare e riuscire a indovinare sempre al primo tentativo?