Python elementare

Da Wikiversità, l'apprendimento libero.
Jump to navigation Jump to search
lezione
Python elementare
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Linguaggi di programmazione

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[modifica]

Per incominciare il Python è un linguaggio di programmazione, e come tale può dire 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[modifica]

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[modifica]

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[modifica]

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[modifica]

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:

mele = 5
pere = 3
frutta = mele + pere
print 'mangio 3 mele'
mele = 5 - 3

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 /.

soldi = 20.0
costo_biglietto = 2.0
biglietti = soldi/costo_biglietto
print 'hai speso il seguente numero di euro in biglietti:'
soldi_spesi = biglietti * costo_biglietti
print soldi_spesi

Infine si può anche elevare a potenza:

 lato_quadrato = 5.0
print 'lato = 5 '
area = lato_quadrato ** 2
print 'area: '
print area

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:

mele = 3
pere = 2
print 'mangio una mela e compro 3 pere'
mele -= 1
pere += 3
frutta = mele
frutta += pere
print mele, pere

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 !=.

nome = 'Steve'
cognome = 'Harris'
altezza = 1.74
altezza > 1.74  #Falso
altezza >= 1.74 #Vero
altezza >= 1.74 #Vero
altezza < 1.74  #Falso
nome == 'steve' #Falso
nome == 'Steve' #Vero
nome != cognome #Vero


Questi simboli significano:

operatore significato
< minore di
> maggiore di
<= minore o uguale di
>= maggiore o uguale di
== uguale a
!= diverso da

If,Else & co[modifica]

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

mele = 5
pere = 8
if mele < 7:
    print 'ci sono rimaste poche mele'
if pere < 7:
    print 'ci sono rimaste poche pere'

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.

mele = 5
pere = 8
if mele < 7:
   print 'ci sono rimaste poche mele'
else:
   print "abbiamo un po' di mele"

if pere < 7:
   print 'ci sono rimaste poche pere'
else:
   print "abbiamo un po' di pere"

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:

mele = 5
pere = 0
if mele < 7 and mele != 0:
   print "ci sono poche mele"
elif mele == 0:
   print "non abbiamo più mele"

if pere < 7 and pere != 0:
   print "ci sono poche pere"
elif pere == 0:
   print "non abbiamo più pere"
else:
   print "abbiamo un po' di mele"

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[modifica]

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:

mele = 5
pere = 7
if mele >6 and pere >6:
   print 'abbiamo tante mele e tante pere'#1
if mele > 6 or pere > 6:
   print "abbiamo un po' di frutta"#2

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[modifica]

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:

mele = 5#variabile che contiene il numero di mele
#print mele
print "ho un po' di mele" #stampa a schermo una scritta

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[modifica]

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.

def area(lato):
   return lato**2
#fine funzione
print area(2)  #esegue la funzione con lato = 2
print area(3.5)#esegue la funzione con lato = 3.5
print area(4)  #esegue la funzione con lato = 4

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:

def area_rettangolo(base, altezza):
   return base*altezza
def ciao():
   return 'ciao'#si deve comunque aprire e chiudere la parentesi
def ciaomondo():
   print 'ciao mondo'
print area_rettangolo(3,7)
print ciao()
ciaomondo()

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:


area1 = 5
def area_rettangolo(base,altezza):
   return base*altezza
area_tot = are1+area_rettangolo(4,9)
print area_tot

Non si può però assegnare dei valori a una funzione:area_rettangolo(1,2) = 2. Questo causa un errore.

Cicli[modifica]

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:

for i in range(100):
   print i+1
i = 1
while i <101:
   print i
   i += 1

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:

i = 0
while 1:
   i += 1
   if i == 12:
      break