Python come “calcolatore”¶
Come far fare calcoli a Python.
Bene, abbiamo imparato a far scrivere qualcosa a Python, ma la faccenda è un po’ stupida dato che siamo noi a dire esattamente cosa ci deve mostrare. Vediamo di chiedergli qualcosa di più... Cosa c’è di meglio di chiedere a un “calcolatore” se non di far calcoli? Mettiamolo alla prova. Possiamo scrivere istruzioni per stampare il risultato delle operazioni aritmetiche:
>>> print(5+9)
14
Alcune osservazioni:
L’espressione “5+9” può anche contenere spazi: “5 + 9” e viene comunque interpretata ed eseguita correttamente.
All’interno di IDLE si potrebbe anche omettere il comando print, l’ambiente IDLE aggiunge automaticamente un’istruzione per la visualizzazione del risultato di un’espressione:
>>> 5+9 14
ma è preferibile evitare comandi impliciti: “Non basta che tu calcoli 5+9, devi anche stampare il risultato!”.
Nota: l’ambiente IDLE (ma cosa vuol dire idle in inglese?) permette di riprendere e modificare un’istruzione precedente senza riscriverla, basta portare il cursore sull’espressione, premere <Invio> e IDLE ce la ricopia su una nuova riga, pronta per essere modificata e rieseguita.
Prova tu scrivendo espressioni con più operazioni, espressioni con parentesi controllando che Python faccia i calcoli giusti!
Se hai fatto diverse prove e controllato con attenzione i risultati ti sarai accorto che:
- Python commette degli errori,
- Python sa eseguire poche operazioni.
Il primo problema sorge quando tentiamo di eseguire una divisione:
>>> print 33/7
4
Ma come è possibile che un linguaggio di programmazione serio faccia questi errori? I programmatori che hanno progettato Python hanno pensato che il risultato di una divisione tra interi debba essere un numero intero. Se vogliamo vedere i decimali del risultato, almeno uno degli operandi deve essere un numero con la virgola (la virgola nei linguaggi di programmazione è il punto!):
>>> print 33./7
4.71428571429
Quindi Python tratta in modo diverso “33” da “33.”: il primo è un oggetto
int
(intero), il secondo un oggetto float
(in virgola mobile). È
importante, quando si affronta un problema, prestare ben attenzione se possiamo
trattarlo usando numeri interi o in virgola mobile per evitare errori difficili
da scovare.
Chi sta usando Python 3.x non avrà compreso i paragrafi precedenti infatti in
Python 3.x è stato cambiato il comportamento della divisione, il risultato è
sempre un numero razionale (float
) anche quando gli operandi sono numeri
interi.
Nel resto di questo manuale utilizzeremo Python 3.x. Ma chi ha
installata sulla propria macchina una versione 2.x può dire a Python di
anticipare il comportamento della 3.x importando la divisione e la funzione
print
dal modulo __future__
con il seguente comando:
>>> from __future__ import division, print_function
Dopo questa istruzione anche Python 2.x darà il seguente risultato:
>>> print(33/7)
4.71428571429
Riassumendo
Possiamo usare Python come una calcolatrice. Facendogli calcolare il risultato di espressioni complesse quanto vogliamo.
Si può far riscrivere a IDLE un’espressione, modificarla e rieseguirla.
Possiamo chiedere a Python 2.x di copmortarsi come Python 3.x per quanto riguarda il comando
print
e la divisione eseguendo l’istruzione:>>> from __future__ import division, print_function
Prova tu
- Da un libro di matematica prendi qualche espressione con numeri interi e falla eseguire a Python controllando il risultato.
- Ora prova a far eseguire espressioni con le frazioni.
- Fa qualche prova per vedere quali parentesi vengono accettate nelle espressioni matematiche.
- Scrivi le espressioni che calcolano il perimetro e l’area dei quadrilateri che conosci.