Informatica
Computer Science
▪ Informazione: tutto ciò che possiede un significato per l’uomo
+▪Automatica: senza l’intervento dell’uomo
Evoluzione
1. Computer Science (Informatica) e Electronic Data Processing (EDP)
2. Information Technology (IT, Scienza dell’informazione)
3. Information and Communication Technology (ITC, Scienza della conservazione, elaborazione e trasmissione dell'informazione)
Computer
Calcolatore/Elaboratore
“Macchina per la risoluzione di problemi generici”
▪Elaborazione
▪Archiviazione
▪Trasmissione
Codifica delle informazioni
Linguaggio (strumento che sostituisce dei simboli agli oggetti e ai concetti)
▪naturale: utilizzato dall’uomo, ad es.:
▪ italiano (A–Z) 21 / inglese (A–Z) 26
▪ greco (α–ω) / russo (Њ Ц) / arabo (ف (ك
▪ formale: creato artificialmente senza eccezioni, ad es.:
▪ Morse ( . – )
▪ semaforo (rosso, giallo verde)
▪ numerazione binaria (0, 1)
▪ numerazione decimale (0–9)
Codifica delle informazioni
bit
byte
rappresentazione dei dati (conservazione) interi
reali
alfanumerici
…
trattamento dei dati (elaborazione) operatori aritmetici
operatori logici
invio di segnali (trasmissione) segnali analogici
segnali digitali
Architettura dei calcolatori
processore {39}
dispositivi di memoria
periferiche
sistema operativo {55}
file system {69}
reti e Internet
Componenti di un calcolatore
architettura del sistema
▪hardware: componenti fisici (elettrici, elettronici, meccanici, ottici) del sistema
< EPROM* + firmware** >
▪software: componenti logici (programmi) eseguiti dal sistema
*) Erasable Programmable Read Only Memory
**) microprogrammi per ROM
Classificazione tradizionale dei calcolatori
microcomputer o PC
workstation
minicomputer
mainframe
elaboratori per il calcolo parallelo
(supercomputer)
Architettura di Von Neumann(evoluta)
John Von Neumann(János Lajos Neumann)Budapest, 28Dic1903
Washington, 8Feb1957
Bus di sistema
Mezzo di conduzione delle informazioni all’interno del calcolatore
▪Bus DATI, trasmissione dati da e a CPU
▪Bus INDIRIZZI, trasmissione indirizzi a RAM
▪Bus CONTROLLI, trasmissione ordini daCPU a periferiche
Central Processing Unit (CPU)
(processore)
▪Acquisisce un’istruzione
▪Interpreta le istruzioni che compongono i programmi(un’istruzione alla volta)
▪Esegue le istruzioni dei programmi coordina la macchina
▪Carica le singole istruzione dalla MEMORIA CENTRALE (RAM)
Memoria Centrale
(RAM, Random Access Memory)
Memorizza programmi
Memorizza dati
Memoria VOLATILE
Organizzata a livello logico come:
▪ Sequenza di Bytes (B)ciascuno da 8 bits (b)
▪ Raggruppati in words (8b ÷ 64b)
▪ Indirizzo (posizione) di ciascuna word:
Architettura 32b 232 indirizzo (4GB)
Architettura 64b 264 indirizzo (16GB2)
Capacità di memoria
1 bit (b)
1 Byte (B)
1 Kb (Chilo) = 1024 Byte = 210
Bytes
1 Mb (Mega) = 1024 Kb = 220
Bytes = 1048576 Bytes
1 Gb (Giga) = 1024 Mb = 230 Bytes
1 Tb (Tera) = 1024 Gb = 240 Bytes
1 Pb (Peta) = 1024 Tb = 250 Bytes
1 Eb (Exa) = 1024 Pb = 260 Bytes
Periferiche (dispositivi)
LOCALE (standalone)
▪ Tastiera
▪ Mouse
▪ Video
▪ Touch-screen
▪ Disco
▪ USB drive
▪ Stampante
▪ Foto/video camera, …
REMOTO (networking)
▪RJ45
▪Wi-Fi
▪Bluetooth
Memoria di massa
Disco magnetici, ottici, … (dispositivi elettro-meccanici)
USB drive (dispositivi elettronici)
obsoleti: floppy, nastri, schede perforate, …
▪Memoria PERSISTENTE
▪“Lenta”
▪“Capiente”
Software
“Insieme dei programmi e delle procedure che servono a finalizzare gli strumenti
fisici alla risoluzione del problema presentato dall’utente del sistema”*
▪di base (sistema operativo)
▪applicativo
*) Lorenzi A., V. Moriggia (2012) Teoria e ambiente di programmazione, Atlas, p. 86.
Sistema operativo
“Insieme dei programmi che consentono all’utente, o alle applicazioni
informatiche, di accedere alle operazioni di base per utilizzare le risorse del sistema
di elaborazione”*
*) Lorenzi A., V. Moriggia (2012) Teoria e ambiente di programmazione, Atlas, p. 87.
Modularità
In informatica, caratteristica di un
sistema o di un programma che si
compone di unità distinte, ognuna
delle quali assolve in genere un
compito specifico ed è capace di
interagire con le altre.
Modularità dei sistemi operativi
HARDWARE
Nucleo (kernel)
Gestore della memoria
Gestiore delle periferiche
File System
Interprete dei comandiGUI Prompt
Programmi applicativi
Software applicativo
Programma/Codice/Applicazione/App
“Insieme dei programmi non necessari al funzionamento del computer, ma che lo
rendono ‘specializzato’ in una particolare funzione durante tutto il periodo di
funzionamento dell’applicativo”
▪Sorgente (linguaggio di alto livello)
▪Eseguibile (linguaggio macchina)
Linguaggio di alto livello
Linguaggio di programmazione ad alto livello
“E’ un linguaggio artificiale impiegato nella programmazione degli elaboratori, solitamente nato
dalla formalizzazione e semplificazione di un linguaggio naturale”
▪Diversamente dal linguaggio macchina (direttamente eseguibile da un computer) necessita di una traduzione (compilazione) nel linguaggio (macchina) compreso dall’elaboratore
Linguaggi di programmazione
Due categorie:
▪Compilatiinteramente tradotti in linguaggio macchina e memorizzati in un file (programma/codice eseguibile)
▪ Interpretatitradotti ed eseguiti un’istruzione alla volta
copyright
time
waster
Advantages and Disadvantages
▪ Compiled programs generally run faster than interpreted ones, because interpreted programs must be reduced to machine instruction at runtime (i.e. during the execution).
▪ However, with an interpreted language you can do things that cannot be done in a compiled language. ▪ For example, interpreted programs can modify
themselves by adding or changing functions at runtime. ▪ It is also usually easier to develop application in an
interpreted environment because you don’t have to recompile your application each time you want to test a small section.
▪ Even though interpreted programs are readable (by any other) and must be translated in machine language during any execution
edit in
execution
Linguaggi programmazione
▪FORTRAN (1956) FORmula TRANslation
▪COBOL (1960) COmmon Business Oriented Language
▪BASIC (1964) Beginners All-purposes Symbolic Instruction Code
▪RPG (1966) Report Program Generator
▪PASCAL (1971)
▪C e C++ (1974)
▪PYTHON (1991)
▪ JAVA (1995)
Compiled vs. Interpreted
▪ ProblemAnalysis
▪ AlgorithmImplementation
▪ Source Code (program)Compiling (+ linking)
▪ Executable (program)Execution (running)
COMPILED LANGUAGE
INTERPRETED LANGUAGE
FORTRAN, PASCAL, C ecc.
VBA, BASIC, PYTHON, etc.
.for, .pas, .c .bas, .py
.obj
.exe
execution
Python
▪ Guido van Rossum(inizio degli anni novanta)
▪ Free language
▪ www.python.org
IDE
▪ PyCharm
▪ PyScripter
Designer
▪ QtDesigner
▪ Glade3
Shell
iPython
IDLE
Python
PythonW
online
OUTPUT: print
print "Hello world"
print 2 + 3
print a
Compatibilità con Python 3:
from __future__ import print_function
print("Hello world")
print(2 + 3, a)
print(dato, end="") # stampa succ. in linea
print(dato, end=' ') # stampa succ. in lineacon spazio
COMMENTI
"""
autore: io
data: 1 Oct 2015
UN PO' DI COMMENTI
"""
# Commento fino all’acapo
print "Hello" # commento sulla riga
OPERATORI
▪Aritmetici:
+ addizione
- sottrazione
* moltiplicazione
/ divisione reale
// divisione intera
% resto della divisione
** elevazione a potenza
VARIABILI
▪In Python le varabili NON hanno bisogno di dichiarazione.
▪Le variabili vengono create attraverso l'assegnazione di un valore:
variabile = espressione
a = 5
ASSEGNAZIONE (NON UGUAGLIANZA!)
LISTE
Collezione dinamica di dati eterogenei detti «elementi»
▪Esempi di liste[ 1, 2, 5, 3]
[3, "Rossi", 12800]
list(range(4))
▪Lista vuota[]
L = list()
LISTE: operatori
▪Elemento i-esimo: L[i]
▪Concatenamento: [3] + ['AB', 3.14] + L
▪Stampa: print(L)
▪Numero di elementi: len(L)
▪Confronto (ne basta uno): == != > < >= <=
▪Ricerca del valore v nella lista L: v in L
▪Scansione: for elemento in L:
▪Sottolista dal secondo al quarto: L[1:4]
LISTE: sottoliste
[0|1|2|3|4|5]
▪ NomeLista[ inizio : fine+1 ]
L[1:3] # [1, 2]
L[1:10:2] # [1, 3, 5]
▪ NomeLista[ ()inizio : ]
L[2:] # [2, 3, 4, 5]
L[-2:] # [4, 5]
▪ NomeLista[: fine+1 ]
L[:3] # [0, 1, 2]
▪ NomeLista[:]
L[:] # [0, 1, 2, 3, 4, 5]
LISTE: metodi mutator
Mutator: cambiano lo stato interno dell’oggetto
L.append(elemento)Accoda elemento alla lista L
L.extend(M)Accoda la lista M alla lista L
L.insert(posizione, elemento)Inserisce l’elemento alla posizione, spostando i restanti di un posto (se posizione>len(L), accoda)
L.pop()Estrae (elimina e restituisce) l’ultimo elemento
L.pop(posizione)Estrae l’elemento in posizione
L.sort()Riordina gli elementi nella lista L, se di tipo uniforme
Liste: duplicazione
ATTENZIONE! L’assegnazione non crea una copiadella lista
L = [3, "Rossi", 12800]
M = L
L[1] = 10
print(M) # [3, 10, 12800]
L’assegnazione crea uno
pseudonimo (alias) della lista
Liste: duplicazione
Per duplicare una lista è necessario caricare un elemento per volta nella nuova lista
L = [3, "Rossi", 12800]
M = []
for m in L:
M.append(m)
L[1] = 10
print(M) # [3, "Rossi", 12800]
print(L) # [3, 10, 12800]
Liste: duplicazione
E’ anche possibile duplicare una lista attraversoil concatenamento con una lista vuota
L = [3, "Rossi", 12800]
M = [] + L
print("Lista M: ", M)
# Lista M: [3, 'Rossi', 12800]
print("Lista L: ", L)
# Lista L: [3, 10, 12800]
Stringhe
▪Stringa costante: "Salve Mondo"
▪Set di caratteri (p. 45)
▪Sequenze di escape (p. 40)
▪Concatenamento: "Hello" + "World"
"HelloWorld"0123456789
▪Sottostringhe
S[5] # 'W'
S[-3:] # 'rld'
Stringhe: metodi
▪ {108}
S.count(stringa)
S.find(stringa)
S.replace(vecchia-stringa, nuova-stringa)
S.split()
▪ATTENZIONE: questi metodi NON modificano la stringa di partenza
Formattazione del testo
▪Stringa formattata
"testo %tipo-di-formato altro testo" % dato
▪Tipo di formato stringa
%[[-]ampiezza[.troncamento] ]s
intero%ampiezzad oppure %ampiezzai
reale%ampiezza.precisionef
notazione esponenziale (scientifica/virgola mobile)
%ampiezza.precisionee
Formattazione del testo
r = "%6s" % 'abc‘ # ' abc'
print("<%-10s>" % "testo") # <testo >
"<%3.2s>" % "testo“ # < te>
"<%-10d>" % 3.14 # <3 >
"<%10i>" % 123.14 # < 123>
"<%-10.4f>" % 3.14 # <3.1400 >
"<%10.4f>" % 3.14 # < 3.1400>
"<%10.4e>" % 3.14 # <3.1400e+00>
▪ Con più dati
print("x=%.2f\ty=%.2f" % (2.5,3.14))
# x=2.50 y=3.14
Sistema decimale
▪𝔻 ≡ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Cifre del numero 3 8 7 5 2
Posizione 4 3 2 1 0 -1 -2
Peso 104 103 102 101 100 10-1 10-2
sommatoria 3100 810 71 5/10 2/100
387.52 = 3102 + 8101 + 7100 + 510-1 + 210-2
Sistema binario
▪𝔹 ≡ {0, 1}
Cifre del numero 1 1 0 1 1
Posizione 4 3 2 1 0 -1 -2
Peso 24 23 22 21 20 2-1 2-2
sommatoria 14 12 01 1/2 1/4
(110.11)2 = 122 + 121 + 020 + 12-1 + 12-2
= 4 + 2 + 0.5 + 0.25
= (6.75)10
Sistema binario: conteggio
▪ In base due (bin)
da 1 si passa a 10
da 11 si passa a 100
da 111 si passa a 1000
. . .
▪ In base dieci (dec)
da 9 si passa a 10
da 99 si passa a 100
da 999 si passa a 1000
. . .
00 0000
01 0001
02 0010
03 0011
04 0100
05 0101
06 0110
07 0111
08 1000
09 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
=21
=22
=23
=24
=20
Sistema binario: conversione in decimale
(1110)2 = 23 + 22 + 2 = 8 + 4 + 2 = (14)103 2 1 0
(0110'0111)2= (?)107 6 5 4 3 2 1 0
(1000'0001)2= (?)10
(0101'0100)2= (?)10
Sistema binario: massimo numero rappresentabile
Con quattro bit (binary digit)
0000 = 0
0001 = 1
...
1110 = 23 + 22 + 2 = 8 + 4 + 2 = 14
1111 = 23 + 22 + 2 + 1 = 15
10000 = 24 = 16
= 24 – 1
Al mondo esistono 10 tipi di persone: quelle che capiscono l’aritmetica binaria, e quelle che non la capiscono.
Sistema esadecimale
▪ℍ ≡ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹}
Cifre del numero 3 A 7 F 2
Posizione 4 3 2 1 0 -1 -2
Peso 164 163 162 161 160 16-1 16-2
sommatoria 3256 1016 71 15/16 2/256
(3A7.F2)16 = 3162 + 10161 + 7160 + 1516-1 + 216-2
= 3256 + 1016 + 71 + 15/16 + 2/256
= 768 + 160 + 7 + 0.9375 + 0.0078125
= (935.9453125)10 (circa)
Sistema esadecimale:conteggio
▪ In base 16 (hex)
da 9 si passa a A
da A si passa a B
da F si passa a 10
da FF si passa a 100
. . .
▪ In base dieci (dec)
da 9 si passa a 10
da 99 si passa a 100
da 999 si passa a 1000
. . .
dec bin hex
00 0000 0
01 0001 1
02 0010 2
03 0011 3
04 0100 4
05 0101 5
06 0110 6
07 0111 7
08 1000 8
09 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Sistema esadecimale: conversione in binario e decimale
Conversione in binario
(7FD2)16
▪ 7 = 0111
▪ F = 1111
▪ D = 1101
▪ 2 = 0010
(0111'1111'1101'0010)2
Conversione in decimale
(7FD2)16
▪ 7 ⋅ 163 = 7 ⋅ 4096 = 28672
▪ 15 ⋅ 162 = 15 ⋅ 256 = 3840
▪ 13 ⋅ 161 = 13 ⋅ 16 = 208
▪ 2 ⋅ 160 = 2 ⋅ 1 = 2
▪ 28672 + 3840 + 208 + 2 =
(32722)10
Numeri interi con segno
Tipo Valori Limite Bit
------------------------------------------------------------------------------------------------
Shortint - 128 .. 127 8
Integer - 32 768 .. 32 767 16
Longint - 2 147 483 648 .. 2 147 483 647 32
Byte 0 .. 255 8
Word 0 .. 65 535 16
Integer - 32 768 .. 32 767 16
Longint - 2 147 483 648 .. 2 147 483 647 32
Numeri interi con segno
▪Sistema con modulo e segno (MS)
(+5)10 = (????'????)2MS
= (0000'0101) 2MS
(–5)10 = (????'????)2MS
= (1000'0101) 2MS
▪Difetti (maggiori calcoli e confronti)
Esiste +0 e –0
Operazioni aritmetiche: se A>0 e B>0, …
Numeri interi con segno
▪Sistema in complemento a due (CA2)
L’ordinamento è mantenuto
Sottrazione con una Addizione:+3 + (–5) = –20011 + 1011 = 1110
Inversione di segno rapida:(–5)10
(5)10 = (0101)2
not(0101) = 1010 1010 + 1 = (1011)2
dec bin
7 0111
6 0110
5 0101
4 0100
3 0011
2 0010
1 0001
0 0000
–1 1111
–2 1110
–3 1101
–4 1100
–5 1011
–6 1010
–7 1001
–8 1000
Numeri reali
▪Rappresentazione in virgola fissa: a = xxxx.dddd
▪Forte riduzione dell’intervallo numerico rappresentato
▪Con una rappresentazione del tipo: xxx.dd, con quante cifre significative potrebbero essere rappresentati i valori: 1234567.8, 1324.5678, 0.00018888 ?
▪Quante cifre sarebbero necessarie per poter rappresentare valori del tipo: 1.5*10+50,
2.0*10-30 ?
Numeri reali in virgola mobile (o floating point)
▪Un numero reale 𝑎 in base 𝑏 può essere scritto:
𝑎 = 𝑥 ⋅ 𝑏±𝑛 = 𝑥𝐸 ± 𝑛 = ±𝑐0, 𝑐1𝑐2𝑐3…𝐸 ± 𝑛
con 𝑐0 ≠ 0
▪Esempi▪ -0.00123 -12.3E-4
▪ -12.34 -12.34E00
▪+1.2E-25 +0.0…12
▪0.1234E+30 12340…0
▪Normalizzazione: 1 ≤ 𝑥 < 𝑏
Sistema binario:mantissa ed esponente
▪Standard IEEE 754 (su 32 bit)
M = 1.m
E = e – k
k = 2(n–1) – 1
n = numero di bit per l’esponente (8)
Esempi di rappresentazione dei reali in virgola mobile
Tipo Valori Limite Bit--------------------------------------------------------------------------------------
Real 2.9 E-39 .. 1.7 E+38 48
Single 1.5 E-45..3.4 E+38 32
Double 5.0 E-324 .. 1.7 E+308 64
Extended 3.4 E-4932 .. 1.1 E+4932 80
ALGEBRA BOOLEANACalcolo Proposizionale
George Boole 1815 – 1864
▪ In matematica, informatica ed elet-tronica, l'algebra di Boole è un ramo dell'algebra astratta che comprende tutte le algebre che operano con i soli valori di verità 0 o 1, detti variabili booleane o logiche.
▪L'algebra booleana è finalizzata al calcolo proposizionale
▪Proposizione“Frase alla quale può essere
attribuito un valore di verità:vero o falso”
ALGEBRA BOOLEANACalcolo Proposizionale
Connettivi
+
A AND B
A OR B
NOT A
A XOR B
Valori di verità Vero (1)
Falso (0)
AND , , ,
OR , , + ,
XOR , ,
NOT , , -
proposizioni
atomiche
Proposizioni composte
op
era
tori
log
ici
Operatori logici: proprietà
▪ CommutativaA or B = B or AA and B = B and A
▪ Associativa(A or B) or C = A or (B or C)(A and B) and C = A and (B and C)
▪ DistributivaA or (B and C)
= (A or B) and (A or C)A and (B or C)
= (A and B) or (A and C)
▪ IdempotenzaA and A = AA or A = A
▪ Legge di assorbimentoA or (A and B) = AA and (A or B) = A
▪ not (not A) = A
▪ A or (not A) = Vero
▪ A and (not A) = Falso
Leggi di De Morgan
not(A and B) = (not A) or (not B)
not(A or B) = (not A) and (not B)
Operatori logici: XOR
Disgiunzione esclusiva
Tavola di verità
A B A or B
0 0 0
0 1 1
1 0 1
1 1 0
𝐴⊕𝐵
Operatori logici: IF-THEN
Esempio
A = Piero è bergamasco
B = Piero può essere italiano
▪ se Piero NON è bergamasco allora Piero può NON essere italiano
▪ se Piero NON è bergamasco allora Piero può essere italiano
▪ se Piero è bergamasco allora Piero può NON essere italiano
▪ se Piero è bergamasco allora Piero può essere italiano
𝐴 → 𝐵
or
or
______________
Tavola di verità
(not A) and B
Operatori logici: funzione booleana
A B f(A, B)
0 0 0
0 1 1
1 0 1
1 1 1
A and (not B)
A and B
f(A,B) = ((not A) and B) or (A and (not B)) or (A and B)
= ((not A) and B) or (A or ((not B) and B))
= ((not A) and B) or (A or Falso) = ((not A) and B) or A
= ((not A) or A) and (B or A) = Vero and (B or A) = A or B
Tuple
▪Come le liste, ma costanti:
giorno = ('Lu','Ma','Me','Gi','Ve')
▪L’elenco è tra parentesi tonde, anziché quadre
Dizionari
▪Dati organizzati per associazione (tabelle)
{chiave : dato [, chiave:dato…]}
La chiave è quell’attributo (colonna) che garantisce l’unicità delle tuple (righe)
▪ Inizializzazione
Elenco = {'nome':'Mario', \'cognome':'Rossi', \'eta':35}
Dizionari: operazioni
▪Accesso agli elementi
Elenco['nome'] = 'Piero'
print(Elenco['sesso'])
print(Elenco.get('sesso', None))
▪Conversione in lista
list(Elenco.items())
Dizionari: operazioni
▪Scansione
for chiave in Elenco:
print(chiave, Elenco[chiave])
for (chiave, val) in Elenco.items():
print(chiave, val)
Dizionari: metodi
▪Valore del dizionario D con chiave k, se non esiste k restituisce default (se specificato)
D.get(k [, default])
▪Estrae il valore con chiave k e eliminal’elemento , se non esiste k restituisce default (se specificato)
D.pop(k [, default])
Dizionari: metodi
▪Elenca tutte le chiavi del dizionario D
D.keys()
▪Elenca tutti i valori del dizionario D
D.values()
▪Elenca tutte le tuple del dizionario D
D.items()
▪Elimina tutte le voci del dizionario D
D.clear()
Gestione delle eccezioni
try:
istruzioni-1
except ValueError:
istruzioni-2
▪Controlla il “buon esito” di un blocco di istruzioni (istruzioni-1).
▪ In caso di errore di run-time verranoeseguite le istruzioni-2.
Alias di funzioni
assoluto = abs
radq = math.sqrt
incrementa = lambda x: x+1
▪Liste di funzioni
L = [abs, math.sqrt, lambda x: x+1]
▪Dizionari di funzioni
DF = {'assoluto':abs,
'radq':math.sqrt,
'incrementa':lambda x: x+1}
Funzioni speciali
▪Mappatura
map( funzione ,dati )
▪Filtraggio
filter( funzione ,dati )
▪Riduzione
reduce( funzione ,dati )
(Per python 3 importare:)
# from functools import reduce
Object Oriented Programming(OOP)
▪Programmazione Orientata agli Oggetti
Nuova tecnica di programmazione che concentral’analisi sui dati e sulle azioni da applicare a questi
▪SUGGERIMENTO PRATICO:
Si tratta di un’INTEGRAZIONE di quanto già visto(singoli moduli e/o funzioni), da utilizzare in ognisituazione in cui torni utile, NON forzarel’implementazione esclusivamente agli oggetti
Grafici: Turtle
▪ from turtle import Turtle
▪ # ISTANZA (ESEMPLARE)
▪ t = Turtle()
▪ # NON SCRIVERE
▪ t.up()
▪ # Posizionamento sul piano
▪ t.goto(2,2)
▪ # PRONTI A SCRIVERE
▪ t.down()
▪ # TRACCIO UNA RIGA di 50 px
▪ t.forward(50)
▪ # CAMBIO DIREZIONE
▪ t.setheading(90)
▪ # TRACCIO UNA RIGA di 50 px
▪ t.forward(50)
Grafici: pyplot
from matplotlib import pyplot
p = pyplot
p.plot(x, y)
p.xlabel('time')
p.ylabel('frequence')
p.show()
Files di testo
▪Apertura
f = open(nome file, modalità)modalità = 'w' oppure 'r'
▪Chiusura
▪f.close()
▪Lettura
▪f.read()
▪f.readline()
▪Scrittura
▪f.write(stringa)
OOP: class
▪Nella Programmazione Orientata agliOggetti gli oggetti vengono definitiattraverso le classi e utilizzatiattraverso le istanze (o esemplari)
▪Una classe si compone di▪attributi: caratteristiche o prprietàdell’oggetto
▪metodi: azioni che l’oggetto può eseguire
▪eventi: lo stato in cui si trova un oggetto