# Python elementare

Questo è il corso base del linguaggio Python.
In questo corso verranno trattati brevemente le caratteristiche di base del linguaggio. Nonostante sia un corso base, alcuni termini potrebbero risultare estranei, in tal caso si consiglia di seguire le lezioni generali sugli argomenti informatica e linguaggi di programmazione.

## Come si inizia

Per incominciare il Python è un linguaggio di programmazione, e come tale può dare al computer delle istruzioni da svolgere, ma ha bisogno di essere prima interpretato o compilato. Il python è un linguaggio pseudocompilato, ma può essere trattato come fosse interpretato; il suo interprete si deve trovare sul computer col quale si programma. Lo si può scaricare qui. Dopo il download si deve installare il programma. L'installazione è guidata e risulta pertanto molto semplice. Nonostante sia possibile scegliere alcune opzioni tra le quali il percorso in cui salvare, si consiglia di non modificare le impostazioni se non si è utenti esperti.

## La shell

| Una volta installato python si potrà lanciare la shell. La shell è l'interprete python dove potrete scrivere il vostro codice e eseguirlo. Per aprire la shell in Windows occorre andare in start-->programmi-->Python-->IDLE Python GUI. Una volta aperta la shell potrete iniziare a scrivere il codice. Ogni volta che si desidera fare un nuovo programma si consiglia di andare su File-->New window. Si aprirà un finestra dove inserire il codice. | Attenzione In base alla versione di Python il nome nel menù (e anche la posizione) può essere leggermente diversa. Nella cartella in cui è stato python si troverà di sicuro un collegamento alla shell. (di solito C:\Python#\ dove al posto del cancelletto c'è il numero della versione di python (es: python 2.7,C:\Python27\)) |

## Print

L'istruzione più semplice del linguaggio python è sicuramente il print. Questa istruzione è presente anche in molti altri linguaggi, e svolge in tutti la medesima funzione: stampa a schermo una stringa. Una stringa è una frase, una parola, o più semplicemente un insieme di lettere, numeri e simboli.Le stringhe sono sempre comprese fra doppi apici " o apici singoli ' .Esempio:
| Codice | <Risultato |
| print "Questa e' una stringa" print 'anche questa' print "print è molto utile" | questa e' una stringa anche questa print è molto utile |
* Attenzione
* Si noti come utilizzando i doppi apici nella prima istruzione abbiamo potuto scrivere la e accentata utilizzando l'apostrofo. Se avessimo aperto la stringa con l'apice singolo ci sarebbe stato un errore. Si consiglia di usare sempre i doppi apici se si pensa di dover scrivere qualcosa con apostrofi.
Si può anche stampare un numero o una variabile, ma vedremo come fare più avanti nella lezione.

## Variabili e Dati

Come ogni linguaggio di programmazione, Python possiede dei tipi di dati. Nel programma si possono creare delle variabili, cioè degli spazi di memoria dove vengono ricordati alcuni valori. I dati sono di tipo diverso; esistono:
| Tipo di dato | Cos'è | esempio |
| int (Integer) | É un numero intero. Può essere positivo o negativo | 1984 |
| float | É un numero decimale. Può essere positivo o negativo | 102.564 |
| string | É un insieme di caratteri (numeri,lettere,simboli,spazi sengo di nuova linea ecc...) | "S T R 1 \nN G A" |
| boolean | É un valore booleano, può assumere cioè solo due valori: True(vero) o False(falso). | True |
* Consiglio
* per sapere che tipo di dato è una variabile usare: type(x)dove x è il nome della variabile.
Questi sono i tipi fondamentali, ma ce ne sono altri. Per poter creare una variabile è necessario:
| scegliere il nome da darle mettere un segno di uguale (=) specificare il valore | Esempi anno = 1975 nome = "Steve Harris" altezza = 1.74 album_studio = 15 album_live = 5 |
Il nome della variabile in genere non contiene simboli e spazi, è consigliato utilizzare il trattino basso (underscore _) al posto dello spazio. In python non è necessario specificare il tipo della variabile. Anche se python attribuisce il tipo in automatico è bene sapere che:
* se ci sono apici o doppi apici penserà che sia una stringa
* se non è una stringa ed è True o False è boolean
* se non è una stringa o un boolean è un numero. Se ha un punto(.) è float altrimenti è intero
Per esempio 125 è un Integer ma "125" e '125' sono stringhe e 125.0 è un float (decimale). True e False sono valori booleani ma 'True' è una stringa. Per specificare il tipo che la variabile assumerà possiamo usare le conversioni. Quando si usa una conversione si dice a python un dato valore, e, in più gli si dice di trasformarlo in un dato tipo. Esempio:
* Codice
* album_studio = 15 altezza = 1.74 print album_studio print float(album_studio) print altezza print int(altezza)
* Risultato
* >>> >>> >>> 15 >>> 15.0 >>> 1.74 >>> 1
| Lista delle conversioni più comuni | |
| int(x) | converte x in integer |
| float(x) | converte x in float (decimale) |
| str(x) | converte x in una stringa |

## Operazioni e operatori

Un linguaggio di programmazione mette sempre a disposizione i classici operatori funzionali per modificare le variabili, e, un altro tipo di operatori, che serve a comparare le variabili. Tra i vari linguaggi di programmazione ci potrebbero essere alcune differenze, ma molti di questi operatori sono simili o uguali. Vediamo di cosa stiamo parlando:
Con il seguente codice si visualizzanno le due scritte ('un amico...' e 'si prende...') e i soldi di Steve subito dopo le 'transazioni'. Come avrete notato si può usare '=' per creare una variabile, ma anche per assegnarne un nuovo valore. Inoltre il valore del segno meno(-) e quello del segno più(+) sono gli stessi della matematica. Le altre due operazioni, moltiplicazione e divisione, sono rispettivamente * e /.
Infine si può anche elevare a potenza:
L'abbiamo fatto attraverso il segno **. Esistono ancora due operatori che si rivelano sempre molto utili, e sono quelli di incremento e decremento. Immaginiamo di dover aumentare o diminuire una variabile:
Con += si aggiunge alla variabile una quantità, con -= la si diminuisce. Questi erano gli operatori che servono a modificare il valore di una variabile. Gli altri sono i famosissimi >, <, >=, <=, == e !=.
Questi simboli significano:
| operatore | significato |
| < | minore di |
| > | maggiore di |
| <= | minore o uguale di |
| >= | maggiore o uguale di |
| == | uguale a |
| != | diverso da |

## If,Else & co

In ogni programma si devono fare delle scelte, queste si esprimono con "if". In italiano if significa se. Questo funziona comparando due termini e eseguendo delle operazioni solo se è rispettata la condizione. Esempio
Il risultato del codice sarà la stringa 'ci sono rimaste poche mele', mentre la seconda (quella delle pere) non verrà visualizzata. Questo perché il programma legge l'istruzione if e la interpreta come: se mele è minore di sette eseguo il codice sotto, altrimenti no Vi faccio notare che dopo l'istruzione if si deve fare una tabulazione (che nell'editor avviene automaticamente) per evidenziare il codice da eseguire; inoltre al termine della riga dove c'è l'istruzione if ci devono essere i due punti (:). Tutti gli operatori di comparazione citati sopra possono essere tradotti con le espressioni a fianco (!= diverso da, ecc...). Con if si può anche indicare cosa fare nel caso la comparazione dei due termini fosse sbagliata (come è scritto sopra, restituisce False). In italiano si dovrebbe dire altrimenti, in inglese, else.
Una variante di else è elif. Questa parola unisce il significato di else con quello di if, ovvero, funziona come un 'altrimenti se...'. Funziona nel seguente modo:
Con questo codicesi può notare che elif ha una funzione simile a quella di else, sebbene permetta di specificare una condizione. Inoltre è possibile incatenare più istruzioni if-elif-else, ma queste devono essere scritte nell'ordine indicato: if(solo una, esclusivamente all'inizio), elif(quante ne si vuole, dopo if, ma prima di else), else(massimo una, alla fine). Nel codice precedente si mostrava anche l'uso della congiunzione and.

## And, Or

Esistono più congiunzioni, che servono a completare le condizioni di un if. Le principali sono and e or. And in inglese significa 'e' mentre or significa 'oppure'. Esempio:
Il codice precedente stampa la string eseguita da #1 se sia pere che mele sono maggiori di sei. La seconda (#2) è stampata se mele oppure pere è maggiore di sei. La prima stringa non verrà stampata perché non entrambe le condizioni sono vere, la seconda si, perché usando or almeno una delle condizioni (o entrambe) deve essere vera.

## Commenti

I commenti sono delle scritte all'interno del codice che servono a spiegare qualcosa. La shell li legge, ma non li esegue. I commenti sono importanti non alla corretta esecuzione del programma, ma ai programmatori, per eventuali modifiche. Per iniziare un commento si utilizza il cancelletto #. Esempio:
Si noti come l'istruzione print mele venga ignorata. Tutto ciò che viene dopo un asterisco è un commento e perciò verrà ignorato. I commenti terminano a fine linea.

## Funzioni

le funzioni hanno lo stesso significato che in matematica. In python le funzioni iniziano con def, come le variabili hanno un nome, e degli argomenti. Gli argomenti sono delle informazioni necessarie a svolgere la funzione. Immaginiamo di voler creare un programma che calcoli più volte l'area di quadrati. Per calcolare l'area di un quadrato ci serve la lunghezza del lato, infatti il lato sarà un argomento della funzione.
Ogni volta che si vuole calcolare l'area di un quadrato si può richiamare la funzione area, specificando fra parentesi la lunghezza del lato. Si possono anche specificare più argomenti, oppure nessuno:
Si noti come l'ultima funzione non abbia l'istruzione return. Con return si dice a python il dato da restituire a fine funzione, senza di esso la funzione esegue tutte le istruzioni al suo interno, ma non può essere considerata come una variabile. Quando si usa return, invece, si può utilizzare la funzione come fossa una variabile:
Non si può però assegnare dei valori a una funzione:area_rettangolo(1,2) = 2. Questo causa un errore.

## Cicli

I cicli si usano quando si deve ripetere un'istruzione più volte, per esempio stampare i numeri da uno a 100. In python sono due i principali for e while. For significa 'se', mentre while può essere tradotto con 'fino a quando'. Il codice seguente stampa i numeri da 1 a 100 con due istruzioni diverse:
Con l'istruzione for si può usare un indicatore (nel nostro caso i) anche non dichiarato in precedenza. L'indicatore deve essere seguito da in, e poi, o si usa una lista di argomenti da contare, oppure l'istruzione range. While, invece può essere inteso come un if che si ripete fintanto che è vero. Con l'istruzione while è molto utile la keyword break. Questa interrompe immediatamente il ciclo. Può essere usata nei cicli infiniti: