vuoi
o PayPal
tutte le volte che vuoi
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.