Errori in python

Errori in python

In questo tutorial parlermo di come correggere gli errori in python.

Chiaramente all’inizio della programmazione in python si faranno alcuni errori, ma a mano a mano diminuiranno sempre più.

È importante capire sin da subito come gestirli.

Ci sono dunque vari tipi di errori:


Errori lessicali

Gli errori lessicali sono derivanti dall’uso di termini che non appartengono al linguaggio.

Facciamo subito un esempio:


>>> a=intero(input())

Traceback (most recent call last):

File “<pyshell#31>”, line 1, in <module>

a=intero(input())

NameError: name ‘intero’ is not defined


In questo caso intero non appartiene al linguaggio, infatti l’interprete avvisa che non è definito.


Errori sintattici

Gli errori sintattici si verificano in molti casi:

– Quando ad esempio si utilizzano delle parole chiavi del linguaggio per altri scopi.

– Quando si dimentica a chiudere una parentesi (, [ o {.

– Se all’interno di una condizione c’è un solo = al posto del doppio uguale ==.

– Se mancano i due punti (:) alla fine dell’intestazione di ogni istruzione composta, includendo le istruzioni for, while, if e def (istruzioni che più avanti studieremo).

– Può succedere che i delimitatori delle stringhe non siano appaiati correttamente o che le stringhe non terminano in maniera appropriata.

– Errori di indentazione. Infatti in python vedremo che l’indentazione è fondamentale. Ciò secondo me è un bene perchè permette di scrivere codice pulito e facilmente leggibile da altri programmatori.


Alcuni esempi di errori di sintassi

Ecco un esempio di utilizzo di for come variabile per contenere un valore intero. For è difatti una parola chiave e non può essere utilizzata come variabile.

>>>for=15

SyntaxError: invalid syntax


Ecco un altro esempio in cui dimentichiamo di aprire una parentesi tonda:

>>>lato=int(input))

SyntaxError: invalid syntax


Errori logici o di semantica

In questo caso si deve trovare l’errore nella risoluzione dell’algoritmo. Sicuramente dal punto di vista logico ci sarà qualcosa che non funziona, quindi occorre nuovamente rivedere la possibile risoluzione.

Un semplice suggerimento intanto è quello di capire qual è la parte che non funziona, andando passo passo, così da dedicarsi solo su quella.


Errori di runtime

Gli errori di runtime sono quelli di esecuzione, cioè si verificano durante l’esecuzione del programma.

Può succedere quando si verificano delle eccezioni, o ad esempio se si genera un ciclo o una ricorsione infinita.

Vedremo più avanti qualche caso in dettaglio.

Alcuni link utili

Indice tutorial sul linguaggio python

1 – Introduzione al linguaggio python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

6 – Input e print in python

Esercizi in Python

Esercizi in Python

Sviluppiamo degli esercizi in Python al fine di consolidare quanto studiato finora.


Primo esercizio in Python

Calcolare l’area di un cerchio prendendo in input il raggio.

Ecco dunque la risoluzione del semplice problema in Python:

>>> raggio=float(input())

5.5

>>> PiGreco=3.14

>>> area=PiGreco*raggio*raggio

>>> print(‘l\’area del cerchio di raggio ‘, raggio, ‘ è:’, area)

l’area del cerchio di raggio 5.5 è dunque 94.985.

Il dato da prendere in input è dunque solo il raggio. PiGreco è un valore costante a cui assegno il valore approssimato 3.14.

In Python non c’è differenza significativa tra dichiarare una costante oppure una variabile.

Ricordiamo che la costante rappresenta dati che non cambiano durante l’esecuzione del programma, contrariamente alla variabile.

Più avanti utilizzeremo la libreria math e quindi la costante math.pi.


Secondo esercizio

Tra gli esercizi in Python che affronteremo oggi, c’è anche questo molto semplice:

Prendere in input il prezzo di un prodotto e scontarlo del 30%.

>>> prezzo=float(input())

34.6

>>> prezzo-=prezzo*30/100

>>> prezzo

24.22

L’espressione prezzo-=prezzo*30/100 non è altro che la forma abbreviata di prezzo=prezzo-prezzo*30/100, come abbiamo spiegato nella lezione sugli operatori di assegnazione.

Si poteva anche scrivere prezzo*=70/100 o ancora prezzo*=0.7.

Ho fatto tutto utilizzando una sola variabile perché la variabile prezzo non viene più utilizzata all’interno del programma. Qualora invece servisse sarebbe opportuno creare un’altra variabile.


Terzo esercizio

Continuiamo con altri esercizi in Python e dunque vi propongo il seguente:

Calcolare l’area di un trapezio prendendo in input la base maggiore, la base minore e l’altezza.

La risoluzione di questo algoritmo è dunque molto semplice:

>>> B=int(input()) #prendo in input la base maggiore.

58

>>> b=int(input()) #prendo in input la base minore.

30

>>> h=int(input()) #prendo in input l’altezza.

16

>>> area=(B+b)*h/2 #calcolo l’area del trapezio

>>> print(‘l\’area del trapezio è: ‘, area) #visualizzo l’area

l’area del trapezio è dunque 704.0.

In questo tutorial abbiamo spiegato dei semplicissimi esercizi in Python, nelle prossime lezioni ci eserciteremo ancora.

Alcuni link utili

Indice tutorial sul linguaggio python

1 – Introduzione al linguaggio python

2 – Le variabili in python

3 – Operatori aritmetici e di assegnazione in python

4 – Stringhe in python

5 – Casting in python

Input e print in Python

Input e print in Python

In questa lezione studieremo come utilizzare le funzioni input e print in Python.


Funzione input in Python

Per acquisire dei dati da tastiera si usa la funzione input(), che restituisce la stringa immessa dall’utente.

Infatti anche se inseriamo un numero intero o decimale, esso viene visto come una stringa.

>>> lato=input()

Inseriamo adesso il numero 5

>>> lato #visualizziamo il dato inserito

‘5’

Come possiamo notare, abbiamo una stringa anziché un intero.

Allora come possiamo fare a passare il valore intero o decimale alla variabile lato?

Occorre applicare la funzione int() oppure float(). Questa operazione, come abbiamo già spiegato nella scorsa lezione, viene indicata con il termine casting.

Facciamo subito l’esempio:

>>> lato=int(input())

5

>>> lato

5


La stessa cosa anche per i numeri decimali:

>>> raggio=float(input())

5.6

>>>raggio

5.6


Funzione print in Python

L’output dei dati si ottiene utilizzando la funzione print(), dove all’interno si specifica una stringa, una variabile o entrambe.

Quindi ad esempio:

>>> print(‘il lato’) #stamperà la parola lato

il lato

>>> print(lato) #stamperà la variabile lato

5

>>> print(‘il lato inserito da tastiera è: ‘, lato)

il lato inserito da tastiera è: 5


Esempio sull’uso di queste funzioni:

Prendiamo in input il lato di un quadrato e calcoliamo l’area.

Ecco dunque il nostro semplicissimo programma:

>>> lato=int(input())

5

>>> area=lato*lato

>>> print(‘l\’area del quadrato è: ‘, area)

l’area del quadrato è: 25

Noterete sicuramente che nell’istruzione print ho inserito il carattere \ in quanto è presente un apice. Questo carattere di escape è dunque necessario se ci troviamo con una parola con l’apostrofo: ‘l\’area’, l\’altalena, ecc.

Questi sono solo dei semplici esempi di utilizzo delle funzioni input e print in Python, nella prossima lezione proporrò altre esercitazioni.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

Casting in Python

Casting in Python

In questa lezione affronteremo il concetto di casting in Python.

Il casting è quell’operazione che restituisce il valore di un’espressione (o una variabile) convertito in un altro tipo. Difatti la variabile resta comunque del tipo originale.

Nella scorsa lezione abbiamo già elencato alcuni tipi di dati in Python:

Tipi di dati

int – interi.

float – virgola mobile (decimali).

complex – numeri complessi.

bool – booleani.

string – stringa.

Questi sono solo alcuni tipi di dati, più avanti ne studieremo altri.


Funzioni per il casting in Python

Le funzioni per il casting in Python che studieremo oggi sono:

int(): converte una variabile al tipo di dato intero;

str(): converte una variabile al tipo di dato stringa;

float(): converte una variabile al tipo di dato float, cioè un numero decimale.


Facciamo subito un esempio sull’operazione di casting:

Ricordiamo che le stringhe vanno scritte tra apici singoli o doppi apici. Quindi se ad esempio scrivo a=’13’, 13 viene vista come stringa e non come numero. Allo stesso modo se scrivo a=”13″.

Ecco dunque un esempio:

>>>a=’13’ #in questo caso a è una stringa in quanto ci sono gli apici.

>>>a*2 #moltiplichiamo la variabile a per 2.

‘1313’ #otterremo la ripetizione della stringa 13 due volte.

>>>a=int(a) #convertiamo ad intero, facendo il casting.

>>>a*2 #facciamo nuovamente il prodotto di a per 2.

26 #in questo caso otterremo il prodotto di 13 per 2.

Quello che abbiamo fatto in questo punto: a=int(a) rappresenta un’operazione di casting.

Infatti la variabile a inizialmente contiene una stringa ma, con l’operazione di casting int(), successivamente viene convertita in intero.


Secondo esempio:

Allo stesso modo si può fare:

>>> b=3 #in questo caso la variabile b è un intero.

>>> b

3

>>> b=str(b)

>>> b

‘3’

In questo caso b da intero viene convertito in stringa utilizzando la funzione str().

Questi sono solo alcuni semplicissimi esempi dell’utilizzo del casting in python, più avanti ne faremo degli altri.

Link utili

Indice al tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

Stringhe in Python

Stringhe in Python

In questa lezione ci occuperemo delle stringhe in Python.

Per dichiarare una variabile di tipo stringa basta assegnarle un testo racchiuso tra singoli apici o doppi apici.

Facciamo quindi un esempio:

>>>frase=’Coding creativo’

oppure, allo stesso modo:

>>>frase=”Coding creativo”


Operatori con le stringhe in Python

+ concatenazione di stringhe.

* ripetizione di una stringa (deve essere seguito o preceduto da un valore numerico).


Primo esempio con le stringhe in Python

Se usiamo quindi l’operatore +:

>>> frase=’Ciao’

>>> frase2=’ a tutti’

>>> frase + frase2

‘Ciao a tutti’

In questo caso abbiamo concatenato le due stringhe.


mentre se usiamo l’operatore *:

>>> frase*4

‘CiaoCiaoCiaoCiao’

In questo esempio abbiamo ottenuto una ripetizione della frase Ciao, in base al valore numerico specificato dopo l’operatore.


Funzione len()

La funzione len() viene utilizzata per conoscere la lunghezza della stringa.

Quindi:

>>> frase=’Coding creativo’

>>> len(frase)

15


Stringhe in Python come sequenze di caratteri

Le stringhe in Python possono essere viste come sequenze di caratteri. Ad ogni carattere, partendo da sinistra, si associa un indice che inizia da 0 e termina fino alla lunghezza della stringa meno 1.

Es: frase=’Coding’

Allora avremo: frase[0]=’C’; frase[1]=’o’; frase[2]=’d’; frase[3]=’i’; frase[4]=’n’; frase[5]=’g’;

Attenzione, se dovessi chiedere al programma di visualizzare ad esempio frase[6], mi restituirebbe un errore in quanto l’indice è fuori dal range.

Ecco dunque l’esempio:

stringhe in python

Quindi l’indice dei caratteri può assumere un valore che va da 0 a len(frase)-1. Dove frase, in questo caso, è la variabile che contiene la nostra stringa.

Attenzione però! Nell’esempio precedente l’indice è partito da sinistra, ma l’indice può partire anche da destra, partendo dai numeri -1, -2 e così via.

In questo caso dunque l’ultimo carattere della nostra stringa è -1 mentre il primo è -6.

>>>frase=’Coding’

>>>frase[-1]

‘g’

>>>frase[-6]

‘C’


Estrarre sotto-stringhe

Si può estrarre una sotto-stringa da una stringa in Python utilizzando le parentesi quadre, dove all’interno si inserisce il primo carattere della stringa da estrarre e l’ultimo separato dai due punti (:).

Ecco dunque l’esempio:

>>> a=’Coding Creativo’

>>>a[0:6]

‘Coding’

>>a[7:15]

‘Creativo’


O anche più semplicemente posso scrivere:

>>>a[:6]

‘Coding’

>>>a[7:]

‘Creativo’

Queste operazioni sono chiamate slicing che letteralmente vuol dire “affettare”.

Questi sono solo dei semplicissimi esempi con le stringhe in Python, più avanti torneremo nuovamente sull’argomento.

Alcuni link utili

Indice al tutorial sul linguaggio Python

1 – Introduzione al linguaggio

2 – Le variabili

3 – Operatori aritmetici e di assegnazione