Indice
Le variabili
Una variabile serve per immagazzinare dati, possiamo assegnare un dato a una variabile usando l’operatore di assegnazione (=).
num = 5
print(num)
word = “ciao”
print(word)
Output:
5
ciao
Il nome della variabile viene definito da noi, è buona norma utilizzare un nome che rappresenta il contenuto della variabile, in modo da facilitare la lettura del codice.
cat = input(“Inserisci un nome per il tuo nuovo gatto: “)
print(cat+” è il tuo nuovo padrone”)
Output:
Inserisci un nome per il tuo nuovo gatto: Fluffi
Fluffi è il tuo nuovo padrone
Tipi di dati
Python è un linguaggio non tipizzato questo vuol dire che il tipo di dato che una variabile può contenere non va dichiarato espressamente. Per conoscere il tipo di dato che una variabile contiene possiamo usare la funzione type.
var = “ciao”
type(var)
Output:
str
NOTA BENE
Jupyter Notebook e l’interprete interattivo di Python stampano l’output dell’ultima istruzione anche senza utilizzare esplicitamente la funzione print.
I tipi di dati principali che Python ci mette a disposizione sono i seguenti:
- Interi: numeri interi (es: 5, 10, 123)
- Float: numeri in virgola mobile (es: 4.34, 5.31, 0.17)
- Stringhe: del testo (es: “ciao”, “abc”, “Yo, come butta fratello ?”)
- Booleani: possono avere solo due valori vero/falso (True/False)
# Intero
var = 5# Float
var = 4.15# Stringa
var = “ciao ciao”# Boolean
var = Truetype(var)
Output:
bool
Casting
Con python possiamo convertire un tipo di dato in un altro con un’operazione chiamata casting.
ES. 1: Casting da intero a stringa
# Creiamo una variabile che contiene un’intero
var = 5# Convertiamo la variabile da intero a stringa
var = str(var)print(var)
print(type(var))
Output:
5
<class ‘str’>
ES. 2: Casting da intero a float
# Creiamo una variabile che contiene un intero
var = 1# Convertiamo la variabile da intero a float
var = float(var)print(var)
print(type(var))
Output:
1.0
<class ‘float’>
ES. 3: Casting da stringa a intero
# Creiamo una variabile che contiene una stringa
var = “10”# Convertiamo la variabile da stringa a intero
var = int(var)print(var)
print(type(var))
Output:
10
<class ‘int’>
Ovviamente il casting da stringa ad intero non si può fare se la stringa non è un numero.
ES. 3: Casting da stringa a intero (sbagliato)
# Creiamo una variabile che contiene un intero
var = “boh”# Convertiamo la variabile da intero a float
var = float(var)print(var)
print(type(var))
Come vedi il tentativo di convertire una parola in numero ha causato un’errore, che in Python vengono chiamate eccezioni.
Ogni volta che si verifica un’eccezione Python ci mostra:
- la riga esatta in cui si è verificato (La freccia verde)
- il tipo di eccezone (ValueError)
- una breve descrizione (could not convert string to float: ‘boh’ / Impossibile convertire la stringa ‘boh’ in float)
Quando si tratta di unire stringhe e numeri, possiamo usare il casting:
cat_lives = 7
print(“I gatti hanno “+str(cat_lives)+” vite”)
Output:
I gatti hanno 7 vite
Formattazione
Un’altra soluzione consiste nell’utilizzare l’operatore di formattazione (%)
cat_lives = 7
print(“I gatti hanno %d vite” % cat_lives)
Output:
I gatti hanno 7 vite
Il carattere dopo l’operatore di formattazione indica il tipo di variabile, i principali sono:
- %d: numero intero
- %f: numero in virgola mobile
- %s: stringa
Se ti interessa la lista completa clicca qui sotto:
https://docs.python.org/3/library/stdtypes.html#old-string-formatting
Possiamo anche utilizzare più operatori di formattazione all’interno di una stringa.
cat_lives = 7
cat = input(“Come si chiama il tuo gatto ? “)
my_cat_lives = input(“Quante vite ha perso ? “)my_cat_lives = int(my_cat_lives)
my_cat_lives = cat_lives-my_cat_lives
print(“Il tuo gatto %s ha ancora %d vite” % (cat, my_cat_lives))
Output:
Come si chiama il tuo gatto ? Elon
Quante vite ha perso ? 1
Il tuo gatto Elon ha ancora 6 vite
NOTA BENE
la funzione input ritorna una stringa, quindi abbiamo dovuto usare il casting per convertirla in un’intero.
Un’altra soluzione ancora, quella consigliata per Python 3, consiste nell’utilizzare il metodo format:
cat_lives = 7
cat = input(“Come si chiama il tuo gatto ? “)
my_cat_lives = int(input(“Quante vite ha perso ? “))
my_cat_lives = cat_lives-my_cat_lives
print(“Il tuo gatto {name} ha ancora {lives} vite”.format(name=cat, lives=my_cat_lives))
Output:
Come si chiama il tuo gatto ? Elon
Quante vite ha perso ? 6
Il tuo gatto Elon ha ancora 1 vite
Se usiamo una versione di Python superiore alla 3.6 abbiamo anche un’altro modo per formattare le stringhe, chiamato f-strings
cat_lives = 7
cat = input(“Come si chiama il tuo gatto ? “)
my_cat_lives = int(input(“Quante vite ha perso ? “))
my_cat_lives = cat_lives-my_cat_lives
# inseriamo una f prima della stringa per indicare la formattazione
print(f”Il tuo gatto {cat} ha ancora {my_cat_lives} vite”)
Output:
Come si chiama il tuo gatto ? Elon
Quante vite ha perso ? 2
Il tuo gatto Elon ha ancora 5 vite
(71)