Anteprima
Vedrai una selezione di 5 pagine su 16
Laboratorio informatica Pag. 1 Laboratorio informatica Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Laboratorio informatica Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Laboratorio informatica Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Laboratorio informatica Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Codifiche File di Testo

Codifica: insieme di regole che permettono di associare caratteri a configurazioni del supporto di memorizzazione/trasmissione.

La stessa informazione può essere scritta su supporti differenti e con codifiche differenti. Lo stesso supporto può essere codificato in maniere differenti.

Nell'informatica, la codifica ha sempre creato problemi, ad esempio:

  • Testo codificato con la codifica XYZ in sequenza di byte
  • Sequenza di byte trasferita ad un altro programma/elaboratore
  • Testo ricostruito usando uno decodifica non adeguata

Esistono diverse codifiche per il testo:

  • ASCII: 7 bit per carattere (sono codificate solo le lettere dell'alfabeto inglese (metà lettere accentate))
  • Latin-1 (ISO 8859-1): 8 bit per carattere, sono codificate le lettere delle principali lingue dell'Europa dell'ovest (alcuni "slot" sono lasciati non specificati)
  • Windows-1252: variante del Latin-1, alcuni caratteri col peso uso sono stati sostituiti
  • Unicode

Codice ASCII

Il codice ASCII è da gran lunga il codice alfanumerico più diffuso per lo scambio di informazioni tra sistemi di elaborazione. Il codice ASCII standard è codificato su 7 bit e quindi può rappresentare al massimo 27 = 128 simboli diversi. Esiste una versione che usa 8 bit e viene chiamato codice ASCII esteso ed è usato col doppio.

Nei personal computer IBM 11/DOS

Tabella dei codici ASCII

  • Tabella dei codici ASCII. Esempio:
    • ASCII code for space character: 32+0 = 32
    • ASCII code for 'L': 64+12 = 76
    • ASCII code for 'a': 96+1 = 97
  • Origine del problema: non sono gestite le lettere accentate (non sono presenti nell'alfabeto inglese)

Per gestire i caratteri speciali delle lingue diverse dall'inglese sono state create diverse codifiche. Ad esempio:

  • ASCII esteso (8 bit)
  • big 5 (Tradizionale Cinese)
  • ISO-8859-1 "Latin-1" (fra, ita, spa, ted, ...)
  • ISO-8859-7 (Greco)
  • ISO-8859-6 (Arabo)
  • CP 1140 (IBM Western Europe)
  • ...

Molte codifiche però sono tra loro incompatibili e per codificare correttamente bisogna conoscere lo standard usato.

ETÀ MODERNA: UNICODE

Lo standard Unicode è stato introdotto per rappresentare i caratteri di testo in sistemi informatici ed è stato assunto come standard internazionale con lo standard ISO/IEC 10646.

Unicode propone uno standard per rappresentare i caratteri e i simboli di tutti i linguaggi scritti, simboli, ecc.

ENCODS

A volte serve svolgere l'operazione contraria cioè passare da UNICODE a (row) string

Esempio: libreria che veicola stringhe in formato "lothus"

  • coding = utf-8
  • import minilibreria # mette a disposizione la funzione documenting
  • st = "il libro" sul tuoc = est.st.decode("lothus")
  • minilibreria.documenting(zst)

Si possono utilizzare i metodi decode() e encode() per gestire la conversione dei parametri in ingresso e in uscita di una funzione o di una libreria esterna

CREAZIONE DI FILE .CSV PER EXCEL

Excel riconosce che i .csv siano salvat specifica codifica "latin"

  • coding = utf-8
  • import codecs
  • j = codecs.open("dato.csv", "w", encoding="lothus", errors="ignore")

cut = "Nome;Cogome;Eta"

Nikola;Doppa;20

J

orge;Wurst;21

  • j.write(cut)
  • j.close()

ALCUNE FUNZIONI UTILI

  • chr() permette di passare da codice ASCII numerico (in base 10) a carattere corrispondente
  • unichr() permette di passare da codice UNICODE numerico (in base 10) a carattere corrispondente
  • ord() esegue l'operazione inversa da carattere a codice numerico in base 10

Sottoclasse

Su Python si definisce una sottoclasse specificando cosa la rende diversa dalla sua superclasse.

Le sottoclassi ereditano dalla superclasse:

  • Tutte le variabili di oggetto
  • Tutti i metodi se non si modificano

La sottoclasse può aggiungere:

  • Variabili nuove (non presenti nella superclasse)
  • Metodi nuovi (non presenti nella superclasse)
  • Metodi che modificano il comportamento di metodi ereditati

Ereditarietà (Sottoclassi)

Esempio:

class Animale: # Classe padre def __init__(self, nome): self.nome = nome def parla(self): print "" class Gatto(Animale): # Classe Figlia def parla(self): # overriding print("Miao") class Cane(Animale): # Classe Figlia def parla(self): # overriding print("Bau")
  • def classe Figlia (Padre);
  • La classe figlia eredita dalla classe padre tutto
  • Overriding: quando una classe figlia ridefinisce un metodo della classe padre.
  • parla(): è un esempio di polimorfismo: ha un comportamento diverso a seconda dell'oggetto su cui viene invocato

Gestione Eccezioni 2

try: # codice python

except Eccezione1: # codice per gestire Eccezione 1

except : # codice per gestire qualunque tipo di eccezione

else: # codice eseguito se non sono sollevate eccezioni

Il secondo except gestisce tutte le eccezioni del blocco try... except non menzionate esplicitamente

Blocco Try... Except Annidati

  • Le eccezioni non gestite da un blocco try... except vengono propagate al blocco try... except più esterno.
  • Dopo che una eccezione è stata gestita da un except, l'esecuzione riprende dal codice successivo allo except stesso.
  • Se nessun blocco try... except è in grado di gestire un'eccezione, l'esecuzione viene interrotta.
Dettagli
A.A. 2016-2017
16 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giuseppe.lanzon di informazioni apprese con la frequenza delle lezioni di Laboratorio di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Boselli Roberto.