Operatori
Le quattro operazioni aritmetiche si comportano nel modo più intuitivo possibile. Non vi è differenza se si utilizzano numeri interi o decimali.
Tra gli operatori aritmetici ritroviamo:
la divisione intera //
la potenza **
il modulo %
Gli operatori logici sono:
and
or
not
in (appartenenza)
not in
is
is not
Esempi:
Codice sorgente
a = 5
b = 3
c = 2
d = -1
x = (a + b) * c - d
y = x / 2
print(x)
print(y)
Esecuzione:
17
8.5
Note:
La divisione tra tipi numerici dà luogo al tipo numerico più opportuno
Codice sorgente
a = 3 // 2
b = 3.9 // 2
print(a)
print(b)
Esecuzione:
1
1.0
Note:
L'operatore // è la divisione intera tra numeri (tronca la parte decimale della divisione ordinaria)
Il tipo numerico risultante può essere un intero o un numero decimale
Codice sorgente
a = 2 ** 5
b = 5 % 3
print(a)
print(b)
Esecuzione:
32
2
Note:
Alla variabile a è assegnato il valore di 25
Alla variabile b il resto della divisione intera tra 5 e 3
Codice sorgente
x = [(5,), 5.0, 5, "5", [5]]
i = 0
while i <5:
if type(x[i]) is float:
print("x[",i,"] ", "is float", sep="")
elif type(x[i]) is int:
print("x[",i,"] ", "is int", sep="")
elif type(x[i]) is str:
print("x[",i,"] ", "is string", sep="")
elif type(x[i]) is list:
print("x[",i,"] ", "is list", sep="")
elif type(x[i]) is tuple:
print("x[",i,"] ", "is tuple", sep="")
i += 1
Esecuzione:
x[0] is tuple
x[1] is float
x[2] is int
x[3] is string
x[4] is list
Note:
La style guide per la comparazione di tipi sugli oggetti raccomanda di utilizzare la primitiva isinstance() al posto di type(), come mostrato nel successivo esempio:
Codice sorgente
x = [(5,), 5.0, 5, "5", [5]]
i = 0
while i <5:
if isinstance(x[i], float):
print("x[",i,"] ", "is float", sep="")
elif isinstance(x[i], int):
print("x[",i,"] ", "is int", sep="")
elif isinstance(x[i], str):
print("x[",i,"] ", "is string", sep="")
elif isinstance(x[i], list):
print("x[",i,"] ", "is list", sep="")
elif isinstance(x[i], tuple):
print("x[",i,"] ", "is tuple", sep="")
i += 1
Esecuzione:
x[0] is tuple
x[1] is float
x[2] is int
x[3] is string
x[4] is list
Conversione di tipi
Nei seguenti esempi sono illustrate le modalità per effettuare le seguenti conversioni:
da stringa ad intero
da stringa a numero decimale
da un tipo numerico a stringa
da elenco ("nome1, nome2, nome3") a lista
da tupla a lista
da stringa a lista
Da stringa ad intero
Codice sorgente
a = input("Inserisci un numero intero: ")
b = a*2
print(b)
aa = int(a)
bb = aa*2
print(bb)
Esecuzione:
Inserisci un numero intero: 12
1212
24
Note:
La funzione input() restituisce un tipo stringa
L'operatore * è definito anche per le stringhe. Il significato è di concatenare ripetutamente la stringa stessa, coerentemente con il valore numerico (purché intero)
La conversione dal tipo stringa al tipo intero è ottenuta con l'istruzione
aa = int(a)
Da stringa a numero decimale
Codice sorgente
a = input("Inerisci un numero decimale: ")
b = float(a)
print(b)
print(b*2)
Esecuzione:
Inerisci un numero decimale: 2.5
2.5
5.0
Note:
La conversione dal tipo stringa al tipo decimale è ottenuta con l'istruzione
b = float(a)
Da tipo numerico a stringa
Codice sorgente
a = 2.5
b = 2
aa = str(a)
bb = str(b)
print(aa + "U" + bb)
Esecuzione:
2.5U2
Note:
La conversione dal tipo numerico (sia intero che decimale) al tipo stringa è ottenuta con le istruzioni
aa = str(a)
bb = str(b)
Da elenco a lista
Codice sorgente
elenco = input("Inerisci un elenco di nomi separati da virgola: ")
lista_nomi = elenco.split(",")
print(lista_nomi)
print("***" + lista_nomi[2].strip() + "***")
Esecuzione:
Inerisci un elenco di nomi separati da virgola: Marco, Anna,
Paola ,Rita
['Marco', ' Anna', ' Paola ', 'Rita']
***Paola***
Note:
A partire da un elenco, la funzione split() crea una lista, utilizzando il carattere dell'argomento come separatore
Gli spazi presenti in testa e in coda di ciascun nome, sono inclusi nelle stringhe della lista
Gli spazi in testa e in coda sono esclusi mediante la funzione strip()
Da tupla a lista
Codice sorgente
a = (3, 4, 5, 6)
print(a)
b = list(a)
print(b)
Esecuzione:
(3, 4, 5, 6)
[3, 4, 5, 6]
Note:
La conversione da tupla a lista è ottenuta con l'istruzione
b = list(a)
Da stringa a lista
Codice sorgente
import json
nomi='["Anna", "Giovanna", "Paola", "Alessandra", "Stefania"]'
print(type(nomi))
lst = json.loads(nomi)
print(lst)
print(type(lst))
Esecuzione:
<class 'str'>
['Anna', 'Giovanna', 'Paola', 'Alessandra', 'Stefania']
<class 'list'>
Note:
JSON è un formato standard per la memorizzazione e lo scambio di dati
nomi è una variabile stringa
L'istruzione lst = json.loads(nomi) effettua il parse (l'analisi) dei dati referenziati dalla variabile nomi e li assegna alla variabile lst nel formato opportuno
Sito: 7ecnologie
Sezione: 09. Python
Capitolo: 02. Introduzione a Python
Paragrafo: 05. Operatori e conversione di tipi
Indice dei capitoli: 00. Risorse - 01. Ambiente di sviluppo - 02. Introduzione a Python - 03. Accesso al DB - 04. La libreria tkinter - 05. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Primi passi - 02. Funzioni input() e print() - 03. Liste - 04. Tuple - 05. Operatori e conversione di tipi - 06. Dizionari - 07. Insiemi - 08. Il ciclo for - 09. Gestione delle eccezioni - 10. Definizione di funzioni - 11. Parametri delle funzioni