In questa lezione svilupperemo una calcolatrice in Python utilizzando le classi. La nostra calcolatrice dovrà semplicemente prendere in input due numeri richiesti ed elaborarli attraverso le operazioni aritmetiche.
Calcolatrice in Python – implementazione
Innanzitutto creeremo una classe Calculator dove utilizzeremo il costruttore init con i due parametri a e b oltre al parametro self.
Poi definiamo dei metodi per le 4 operazioni aritmetiche. Stiamo attenti alla divisione in quanto non si può dividere un numero per 0.
Ecco dunque una possibile implementazione:
class Calculator:
def __init__(self, a, b):
self.a = a
self.b = b
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mol(self):
return self.a * self.b
def div(self):
if self.b == 0:
print("Non puoi dividere per zero")
return None
return self.a / self.b
Salviamo il file con nome ‘Calculator.py’ per poterlo così importare ogni qualvolta ci serve.
Dopo definiamo un’istanza passando i valori a e b e richiamiamo alcuni metodi.
Ecco il codice di esempio:
from Calculator import *
calc = Calculator(10,5)
divisione = calc.div()
print(divisione)
addizione = calc.add()
print(addizione)
Facciamo una piccola variazione alla calcolatrice in Python appena creata. Piuttosto che passare gli attributi all’istanza, li chiederemo in input.
Lenovo ThinkPad, Pc portatile Intel Core i5-6th Pronto All'uso con Pacchetto Libre, Notebook Con Display HD da 15,6", Ram 32Gb, SSD 1Tb, W10 (Ricondizionato)
348,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Lenovo, Thinkpad Pc portatile Intel Core i5-6Th, Ram 16 Gb, SSD 512 Gb, Pronto all'uso con Pacchetto Libre, Display HD da 14", W10 e Chiavetta USB Fingerprint (Ricondizionato)
299,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)HP EliteBook 840, CPU intel i5-6200U display 14" Argento ram 16Gb SSD 500Gb Windows 10, Computer portatile con libre office (ricondizionato)
258,00 € (a partire da 18 Marzo 2024 14:59 GMT +01:00 - Altre informazioniProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)Inoltre potremmo anche chiedere all’utente di scegliere un’operatore aritmetico.
Modifichiamo allora la classe precedente inserendo i valori di default ad a e b.
Ecco una possibile implementazione:
class Calculator:
def __init__(self):
self.a = 0.0
self.b = 0.0
def add(self):
return self.a + self.b
def sub(self):
return self.a - self.b
def mol(self):
return self.a * self.b
def div(self):
if self.b == 0:
print("Non puoi dividere per zero")
return None
return self.a / self.b
Dopo chiediamo all’utente di inserire i numeri che possono essere anche con la virgola.
Poi chiediamo di inserire l’operatore per poi eseguire correttamente l’operazione.
Infine stampiamo il risultato:
from Calculator import *
calc = Calculator()
calc.a = float(input('Inserisci il primo numero: '))
calc.b = float(input('Inserisci il secondo numero: '))
op = input("""
Scegliere un'operazione:
+ , - , * , /
""")
if op == '+':
risultato = calc.add()
elif op == '-':
risultato = calc.sub()
elif op == '*':
risultato = calc.mol()
elif op == '/':
risultato = calc.div()
else:
risultato = "Il carattere inserito non è valido"
print(risultato)
Conclusione
In questa lezione abbiamo realizzato una semplice calcolatrice in Python utilizzando le classi, nelle prossime lezioni studieremo tanti altri esempi sulle classi in Python.
Alcuni link utili
Indice tutorial sul linguaggio Python
Operazioni con i file in Python
Introduzione ai dizionari in Python
Quali sono i metodi delle liste