Appunti di Laboratorio Il Linguaggio Python - Lezione 1

Похожие документы
Caratteristiche di un linguaggio ad alto livello

Somma di numeri binari

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Rappresentazione dei numeri reali in un calcolatore

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Lezione 3. I numeri relativi

I sistemi di numerazione. Informatica - Classe 3ª, Modulo 1

Rappresentazione dei dati in memoria

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Conversione binario-decimale. Interi unsigned in base 2. Esercitazioni su rappresentazione. dei numeri e aritmetica

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Codifica. Rappresentazione di numeri in memoria

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Introduzione al Calcolo Scientifico

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Programmazione in Java (I modulo)

Programmazione in Python. Moreno Marzolla

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Sviluppo di programmi

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

OBIETTIVI DI APPRENDIMENTO DI MATEMATICA-SCUOLA SECONDARIA DI PRIMO GRADO

Il Modello di von Neumann (2) Prevede 3 entità logiche:

- Spiega il procedimento seguito, anche in forma scritta, mantenendo il controllo sia sul processo risolutivo, sia sui risultati.

DESCRIZIONI RIGOROSE c7

Moltiplicazione. Divisione. Multipli e divisori

I.4 Rappresentazione dell informazione

Linguaggio C - sezione dichiarativa: costanti e variabili

LINGUAGGI DI PROGRAMMAZIONE!

Informatica di Base - 6 c.f.u.

Rappresentazione di numeri interi

Calcolo numerico e programmazione Rappresentazione dei numeri

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Curricolo verticale MATEMATICA

APPUNTI DI INFORMATICA

La codifica digitale

NUMERI SCUOLA SECONDARIA I GRADO

04 - Numeri Complessi

Espressione di chiamata di funzione

MATEMATICA DI BASE 1

OBIETTIVI di APPRENDIMENTO INDICAZIONI (dalle indicazioni Nazionali)

Fortran in pillole : prima parte

Calcolatori Elettronici Parte II: Sistemi di Numerazione Binaria. Prof. Riccardo Torlone Università di Roma Tre

Disequazioni in una incognita. La rappresentazione delle soluzioni

Cosa c è alla base? Un esempio

Cifre significative delle misure di grandezze fisiche

MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA SECONDARIA DI PRIMO GRADO

Rappresentazione e Codifica dell Informazione

Esercitazione del 09/03/ Soluzioni

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

CURRICOLO DI ISTITUTO

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

MATEMATICA E COMPETENZE DI BASE IN SCIENZA E TECNOLOGIA MATEMATICA CONCORRENTI DISCIPLINA DI RIFERIMENTO: MATEMATICA COMPETENZA DISCIPLINE tutte

ISTITUTO COMPRENSIVO BASSA ANAUNIA DENNO PIANO DI STUDIO DI MATEMATICA CLASSE SECONDA. Competenza 1

Numeri interi (+/-) Alfabeto binario. Modulo e segno

Algoritmi e basi del C Struttura di un programma

Firmware Division & Floating pointer adder

Il calcolatore. Architettura di un calcolatore (Hardware)

Rappresentazione di dati: numerazione binaria. Appunti per la cl. 3 Di A cura del prof. Ing. Mario Catalano

Architettura degli Elaboratori

RAPPRESENTAZIONE DELLE INFORMAZIONI

Introduzione alla Programmazione. Giselda De Vita

Pag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria

Codifica binaria. Rappresentazioni medianti basi diverse

La codifica. dell informazione

Errori di misura Teoria

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

algebra: insiemi numerici N e Q +, proprietà operazioni e calcolo linguaggio degli insiemi

La programmazione nel linguaggio C

Istituto Comprensivo di Pralboino Curricolo Verticale

Транскрипт:

Appunti di Laboratorio Il Linguaggio Python - Lezione 1 Giancarlo de Gasperis, Dario Del Moro, Luca Giovannelli Dipartimento di Fisica, Università di Roma Tor Vergata A.A. 2016/2017 GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 1 / 23

Introduzione al corso Luca, Dario e Giancarlo Chi dott. Giancarlo de Gasperis (Dip. di Fisica, Corridoio C1, Stanza C133) tel: 06-7259-4091 E-Mail: giancarlo.degasperis@roma2.infn.it dott. Dario Del Moro (Dip. di Fisica, Corridoio D1, Stanza D113) tel: 06-7259-4431 E-Mail: dario.delmoro@roma2.infn.it dott. Luca Giovannelli (Dip. di Fisica, Corridoio D1, Stanza D133) tel: 06-7259-4431 E-Mail: luca.giovannelli@roma2.infn.it GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 2 / 23

Introduzione al corso Cosa Obiettivi del Corso Programmazione Strutturata Il linguaggio Python GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 3 / 23

Introduzione al corso come Testi consigliati per Python A Primer on Scientific Programming with Python H.P. Langtangen (Springer) A Student s Guide to Python for Physical Modeling J. M. Kinder and P. Nelson (Princeton University Press) An Introduction to Python and Computer Programming Y. Zhang (Springer) Risorse su internet: The Hitchhiker s Guide to Python: http://docs.python-guide.org/en/latest/intro/learning/ Interactive Python tutorial su Python.org http://http://www.learnpython.org/ Codecademy: https://www.codecademy.com/learn/python Stackoverflow: http://stackoverflow.com/questions/tagged/python Python compiler: python.org: https://www.python.org/downloads/ GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 4 / 23

Introduzione al corso come Preludio: La Programmazione La programmazione é l ideazione e la realizzazione di un programma software usando un set di istruzioni basiche. I linguaggi di programmazione sostituiscono le istruzioni per l hardware con istruzioni piú semplici da interpretare e gestire per il programmatore. Con linguaggio di programmazione, si puó scrivere del software complesso, creando delle funzioni personalizzate da una combinazione di istruzioni elementari. Questa é l ultima frontiera dell utilizzo del computer ed é necessaria quando il software esistente non soddisfa le nostre necessitá, come l esigenza di calcolare delle nuove equazioni o simulare degli esperimenti specifici. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 5 / 23

Spyder IDE Spyder: The Scientific PYthon Development EnviRonment GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 6 / 23

Spyder IDE Spyder: the text editor GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 7 / 23

Spyder IDE Spyder: the interactive console GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 8 / 23

Spyder IDE Interludio 1: La struttura di un computer e il meccanismo di esecuzione del codice Python L hardware del computer é costituito da tre componenti principali: CPU, Memoria e Unitá (Devices). Il computer é gestito da un Sistema Operativo (OS), che mette in comunicazione l hardware ed il software, fornendo interfacce basilari per i programmi al fine di controllare l hardware. Browsers, text editors, music players, e quasi tutti gli altri programmi sono gestiti dall OS. Python é solo un altro programma che viene eseguito all interno dell OS. La sua funzione é di interpretare ed eseguire del codice Python. IPython é un altro programma, che fornisce una interfaccia interattiva verso Python. Dato un codice in Python, Python lo esegue (traducendolo in istruzioni per il computer) sull hardware del computer attraverso il sistema operativo. From: Y. Zhang, An Introduction to Python and Computer Programming GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 9 / 23

Python-calcolatrice Usare il Python come una calcolatrice La nostra prima formula: R = a 2 + b 3 c 4 Calcolare il valore di R per: a = 117 b = 15 c = 13 > > > print 117**2 + 15**3-13**4 L espressione consiste in alcuni numeri, connessi da operatori matematici. I numeri in questo esempio sono delle costanti numeriche di tipo integer. Un operatore (e.g. +, -, *) indica la funzione matematica tra i suoi operandi e di conseguenza il valore dell espressione (e.g. 3 + 5). Quando una espressione matematica é inserita, la console la calcola automaticamente e mostra il risultato nella linea seguente. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 10 / 23

Python-calcolatrice Usare il Python come una calcolatrice La nostra seconda formula: y(t) = v 0 t 1 2 gt2 0 < t < 2v 0 /g Calcolare la posizione y per: g = 9.81m/s 2 v 0 = 5m/s t = 0.6s > > > print 5.0*0.6-0.5*9.81*0.6**2.0 I numeri in questo esempio sono delle costanti numeriche di tipo floating point. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 11 / 23

Costanti e Variabili Definire le Variabili Per convenienza di notazione e per rendere i programmi piú facili da mantenere, possiamo assegnare dei nomi ai valori matematici. Possiamo dichiarare un nome per la Variabile che sará associato alla posizione della memoria che ne contiene il valore. > > > v0 =5.0 > > > g =9.81 > > > t =0.1 > > > h = v0*t-0.5*g*t**2 Il segno = usato NON é un operatore matematico. É un comando di assegnazione, che associa il nome della Variabile ad una locazione di memoria che contiene il valore corrente della variabile. Per i nomi delle variabili esistono delle regole: Devono iniziare per lettera o underscore (_) e contenere una sequenza di numeri, lettere o underscore. NON possono essere usati alcuni nomi giá riservati per delle keywords di Python. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 12 / 23

Costanti e Variabili L operatore di assegnazione Assegnare valori a variabili L operatore = assegna alla variabile alla sua sinistra il valore dell espressione alla sua destra: l operazione a = b + 42 assegna alla variabile a il valore di b incrementato di 42 1 Viene valutata l espressione a dx; 2 Il risultato viene convertito al tipo della variabile a sx; 3 Il risultato è assegnato alla variabile a sx. L espressione a destra dell operatore di assegnazione può contenere qualsiasi combinazione valida di variabili, costanti e operatori aritmetici e logici. Notate che espressioni come a=a+1 sono legittime! GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 13 / 23

Costanti e Variabili Alcuni tipi di Variabili & Valori permessi Costanti e variabili intere: possono assumere valori positivi e negativi, nell intervallo [ 2 31, 2 31 1] Costanti e variabili a virgola mobile: numeri che contengono cifre decimali. I numeri reali possono essere positivi o negativi e possono essere scritti con o senza esponente: Numeri reali senza esponente: 1., -10., 7.5, 0., -99.6 Numeri reali con esponente: <mantissa>e<esponente> e.g.: 0.123E+6, -999.0E-4, 123.4E-6 Costanti e variabili di caratteri: è una serie di caratteri (o stringa) racchiusa tra una coppia di virgolette semplici o doppie. Costanti e variabili logiche: assumono i valori True o False I floating point possono essere rappresentati con 32 o 64 bit. Se la parola è di 32 bit, se ne usano 24 per la mantissa e 8 per l esponente. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 14 / 23

Costanti e Variabili Gli Operatori Matematici Le cinque operazioni fondamentali Gli operatori binari matematici standard del Python sono: + Addizione - Sottrazione * Moltiplicazione / Divisione ** Elevamento a potenza % Operatore MOD La loro priorità nelle espressioni è quella nota. l associatività è da sinistra a destra. È possibile usare le parentesi tonde ( ), che vengono valutate per prime, per associare opportunamente diverse espressioni. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 15 / 23

Costanti e Variabili Attenzione 1 Non è possibile affiancare due operatori: a*-b a*(-b); a**-b a**(-b) 2 Moltiplicazione implicita non ammessa: x(y+z) x*(y+z) 3 Le parentesi tonde permettono di raggruppare i termini delle espressioni: 2**((8+2)/5) = 2**(10/5) = 2**2 = 4 GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 16 / 23

Costanti e Variabili Le Operazioni Matematiche Operazioni con numeri interi: possono essere svolte solo con costanti e variabili intere e generano sempre un numero intero. Se la divisione di due interi non è un intero, il computer tronca automaticamente la parte decimale del risultato: 3/4 = 0, 4/4 = 1 6/4 = 1... Operazioni con numeri reali: riguardano costanti e variabili reali e il risultato generato è un numero reale: 3./4. = 0.75, 4./4. = 1., 5./4. = 1.25... La rappresentazione dei numeri reali può non essere esatta, in quanto la precisione è limitata! GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 17 / 23

Costanti e Variabili Errore di Arrotondamento Numerico I numeri floating point non possono rappresentare tutti i numeri reali : > > > x =1./7. > > > print x+x+x+x+x+x+x 0.9999999999999998 > > > print 3.3%2 1.2999999999999998 Per rappresentare gli infiniti numeri reali serve infinita memoria. I floating point rappresentano solo 2 32 numeri diversi tra loro. Tali numeri prendono il nome di numeri macchina. Tutti gli altri numeri reali sono arrotondati al numero macchina piú vicino. Se rappresentati a 32 bit i floating point hanno un errore percentuale di round-off di 10 7. Se rappresentati a 64 bit i floating point hanno un errore percentuale di round-off di 10 16. GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 18 / 23

Costanti e Variabili Operazioni tra Operandi di diverso tipo In generale operazioni binarie tra operandi dello stesso tipo daranno un risultato dello stesso tipo degli operandi. Un operazione si dice mista se interessa operandi di tipo differente. 3/2.0 =??? Le espressioni miste sono pericolose perché possono essere interpretate male e possono fornire risultati imprevisti! Generalmente nelle operazioni miste i numeri interi vengono trasformati in numeri reali prima di effettuare le operazioni: 3/2.0 = 3.0/2.0 = 1.5 Esempio: n= (3+4)/2 +1.0 print n 4.0 n= (3+4.)/2 +1.0 print n 4.5 GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 19 / 23

Operatori Logici Operatori relazionari Gli operatori relazionali sono operatori con due operandi numerici o di caratteri che forniscono un risultato di tipo logico. Operatore Operatore Utilizzo Significato Algebrico in Python in Python > > x > y x è maggiore di y? < < a < b a è minore di b? = == x == y x è uguale a y? >= x >= y x è maggiore o uguale a y? <= a <= b a è minore o uguale a b? Il risultato sarà il valore logico True oppure False a seconda se la condizione è VERA oppure FALSA. Esempio: 3 < 4 True 3 == 4 False GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 20 / 23

Operatori Logici Operatori logici Un operatore logico è un operatore binario che elabora dati logici, numerici o caratteri e fornisce un risultato di tipo logico. Operatore Operatore Espressione Significato Logico in Python in Python OR or x or y OR logico AND and a and b AND logico NOT not not y NOT logico Tavola della verità: x y x and y x or y True True True True True False False True False True False True False False False False x True False not x False True GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 21 / 23

Operatori Logici Interludio 2: Python vs Java vs C++ Tra i tre, C++ é stato inventato per primo. Le sue istruzioni sono le piú vicine alle istruzioni hardware. Di conseguenza, C++ é veloce e puó essere molto ottimizzato. Tuttavia, C++ richiede una buona conoscenza dell hardware ed é poco intuitivo. Java é stato inventato decadi dopo il C++. Ha un alto livello di astrazione rispetto al C++, ció lo rende piú facile da comprendere e utilizzare. Come controparte, la sua esecuzione é piú lenta. Python é ancora piú semplice concettualmente e piú lontano dall hardware. Di conseguenza, dei tre é il piú facile da apprendere e dominare, ma i suoi programmi sono i piú lenti da eseguire. From: Y. Zhang, An Introduction to Python and Computer Programming GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 22 / 23

Operatori Logici Esercizi: (a) 1 + 3 * 2-5 + 4 (b) 1 + 3 * (2-5) + 4 (c) 5**2**2*3+1 (d) 5**(2**2)*3+1 (e) 1 + 3/2 (f) 1 + 3.0/2 (g) -2-1 (h) -(2-1) (i) 3.0 + 3/2 (j) 3 + 3/2.0 (k) - 1**0.5 (l) 10 5 (m) 10 (n) le radici di x 2 7x + 10 = 0 (o) log(2 + 5) (p) l area del cerchio di raggio 5.5 (q) sin(2.5) (r) le radici di x 2 2x + 10 = 0 (s) 4! (t) Σ 128 k=32 k (v) Π 17 k=3 k GdG, DDM, LG (Fisica, Tor Vergata) Laboratorio di Calcolo ed Informatica A.A. 2016/2017 23 / 23