Oggi parleremo di matematica. Ferrrmi! Non è come sembra!! Davvero!!!
Ancora qui? OK, si parte ma prima un po' di comunicazioni per quello che ci tornerà utile in seguito.
Tra breve cominceremo a scrivere degli script (si chiamano così i programmi in Python) e ci serve un editor. Per Linux vanno bene quasi tutti (no, non servono vi o Emacs anche se...). Per Windows il Blocco note è un po' troppo rudimentale; consiglio caldamente di installare Notepad2, è free e lo trovate qui
Scegliete l'opzione "Download Notepad2 4.2.25 Setup (x86) [292 KB]"
OK, ce ne sono anche altri, magari ne avete già uno o più.
A proposito: tra i millemila che hanno visto le prime lezione ci sono anche quelli che usano Windows vero? Fatecelo sapere perché alcune cose (poche in verità) cambiano per voi.
Per una ragione che vi risulterà chiara in seguito sarebbe cosa buona e giusta avere un editor più orientato a Python. Io uso Geany, lo trovate anche per Windows qui
Per Windows prendete Windows Binaries geany-1.22_setup.exe - Full Installer including GTK 2.16.
Ancora una cosa: noi usiamo il terminale ma con Python ne viene installato uno dedicato, Idle, lo trovate nel menu (quale? dipende)
OK, adesso come promesso vediamo un po' di operazioni che possiamo fare con i numeri. In Python esistono due tipi di numeri: int -> interi e float -> numeri decimali (quasi reali ma se c'è qualche mate mi cazzia se lo dico).
Una cosa che tutti sanno: per i float usiamo il punto e non la virgola.
Cominciamo con gli interi:
OPS! tutto Ok ma la divisione non fa quello che dovrebbe!
No, è tutto sotto controllo: per la divisione fra interi il risultato viene troncato, proprio come facevamo in seconda elementare: 8 diviso 5 dà 1 con il resto di 3. Il resto lo troviamo con l'operatore modulo, dai non siamo più in seconda!
chiaro no?
Attenzione: con la versione 3.x la divisione cambia: non tronca più per cui avremmo ottenuto 1.6; per avere il troncamento dobbiamo scrivere //.
C'è anche l'elevazione a potenza, ecco
funziona anche per fare la radice quadrata, così
o qualsiasi altra radice, ecco la radice cubica
ahemm! problema (estetico) di arrotondamento.
Notare che per quanto detto prima ho scritto 1. per avere un terzo, altrimenti capitava questo errore
E questo è un errore logico, di quelli nascosti che possono essere difficili da scovare. Nel nostro caso 1 / 3 dà 0 e qualsiasi numero diverso da zero elevato a zero dà 1, come certo saprete.
Però la radice quadrata è un'operazione talmente comune che ha un operatore tutto suo. Cioè no, è una funzione nel modulo math (presto sapremo tutto su moduli e funzioni, per adesso prendetela per buona)
OK, adesso passiamo ai reali, cioè float...
però, ripensandoci, ve lo lascio come esercizio, dai è facile.
E la prossima volta interrogo, avvisati nèh!
Juhan
Bello e ironico al punto giusto.
RispondiEliminaSpero che qualcuno non provi a dividere per 0 prima di arrivare a trattare le eccezioni :)
Ancora complimenti
Alex
p.s. ho avuto l'autorizzazione a pubblicare i miei lavori in python quindi prossimamente (pulizia del codice da riferimenti di server etc etc) lo metto su sourceforge e sul mio blog
Alex, intanto grazie. Ti ho appena cerchiato su G+ ma il tuo blog, perdona la gnoranza, qual è?
Eliminaahahaah scusa è http://stanzinofree.net ma è poco aggiornato, ero in attesa di avere l'autorizzazione ad usare i miei script per scrivere qualcosa e tra il dire ed il fare poi non avevo mai il tempo di aggiornarlo, forse questa è la volta buona :)
EliminaInteressantissimo, anche questa fase è superata.
RispondiEliminaPython sembra facile anche per me che non ho mai preso in mano nessun codice, è la prima volta!
Che il biscione sia con te! Ma ricorda che "it's long way to Tipperary".
EliminaVisto che Python sembra così facile, con l'occasione riprendo in mano i libri di informatica e di 'puter che avevo alle superiori, e ricomincio proprio dalle basi.
RispondiEliminaPer ora vado avanti finché non mi stanco, poi imparo qualcosa in più sera per sera.
Grazie, corso utilissimo, Juhan.
il problema per me è l'identazione
RispondiEliminami da speso errore , e poi la sua semplicità
è un'arma a doppio taglio, per chi come me viene
da linguaggi più complessi come il Pascal e il Fortran (a prova di scemo) reminiscenze universitarie ..molto lontane ahimè
Python è atipico riguardo ai blocchi: la maggior parte la fa con { e } come il C, qualcuno con begin e end come il Pascal e Delphi.
RispondiEliminaGuido ha raccontato più volte come e perché ha scelto l'indentazione (altri l'avevano fatto, ricordo Occam) che un vantaggio ce l'ha: il codice è più ordinato e leggibile.
Certo bisogna avere un editor che distingue spazi e tab.
Se serve posso procurarti un elenco.
Poi, a dirla tutta, ma proprio tutta-tutta, c'è un'altra via: le parentesi, non so se hai presente il Lisp, il mio linguaggio preferito.
no il Lisp non lo conosco è per un ex di Scienze dell'informazione
RispondiEliminaahimè ritirato , non è una bella cosa LOL!
per Editor uso Notepad++ che dovrebbe andare bene :)