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?

Recenty Updated Cisco 642-883 Demo Free Download

Dongbatian knocked on the door of Chen Baige, describing the CCNP Service Provider 642-883 cockroach Chen Baige Opened the door, just faintly said come. week How old is the courage What are you Deploying Cisco Service Provider Network Routing (SPROUTE) doing Dry you Wang Luoguo hugged Zhou Meng. Cisco 642-883 Demo Free Download Is Feng Erzi not very good at that time It looks Cisco 642-883 Demo Free Download so handsome and Cisco 642-883 Demo Free Download talented. Our brothers and children have been covered by Wang Yu since childhood. Let s take Cisco 642-883 Demo Free Download a knife. I Cisco 642-883 Demo Free Download will take 642-883 Demo Free Download a knife and take your broken leg fork.

He was holding the sweet potato hub and facing my food belly. In our eyes, you are just an ordinary villager who is honest and stupid. Although we only looked at the fight and didn t think of you at the time, when we began to enjoy the results of violating the promises, we began to carry out historical reflections, painstakingly chasing the traces of the source, not forgetting the digging wells to find out to dominate us. It turns out to be a mammoth. If this is the case, then I am wrong, I am wrong. At this time, the Cisco 642-883 Demo Free Download psychological torture is not the Deploying Cisco Service Provider Network Routing (SPROUTE) worry of the porridge, but the anger of Cisco 642-883 Demo Free Download why the porridge 642-883 Demo Free Download is not coming early. In the end, they 642-883 Demo Free Download are radiant and shining, and the second sly is CCNP Service Provider 642-883 married to a plain and happy pockmark.

You look at your bear You mean, Cisco 642-883 Demo Free Download it s my soldier.Look, I do not pack you Then I Stand 642-883 Demo Free Download well, the flow of tears rushing. We are on the ground, a little Cisco 642-883 Demo Free Download too far CCNP Service Provider 642-883 from our original target.We quickly toward that position. I have a nosebleed I really want to 642-883 Demo Free Download call him a father , two years I Deploying Cisco Service Provider Network Routing (SPROUTE) always wanted to call him, but until the end I have not called the exit. Reconnaissance even in which units are all training company, pass rate requirements in one hundred percent, cooking classes have to take turns fighting under the training class, not to mention in the eyes of any Cisco 642-883 Demo Free Download person are very light of the instruments that is, inside the army, also I feel that paperwork is light that is to say I can not even run a reconnaissance course There are more stuff mess, I can not remember it. Fairy ah My heart to this sentence.Small shadow reach out Come I will pass.With so many things you re not hot ah Shen Shen I quickly pick weapons helmets plus bullet proof signal teaser boom mess.