IT OBUKE NAPREDNI NIVO UPRAVLJANJE PODACIMA Knjaevac 01
IT OBUKE – NAPREDNI NIVO UPRAVLJANJE PODACIMA Knjaževac, 01. 12. 2018. god
TEKSTUALNI STRINGOVI �Tekst je najpoznatiji tip podataka najvećem broju čitalaca �ASCII (Američki standardni kod za razmenu podataka) je skup karaktera i kodna stranica utemeljena na latinskom pismu �Osnovna jedinica računarskog skladištenja – bajt (skladišti najviše 256 jedinstvenih vrednosti u osam bitova) �ASCII je koristio samo 7 bitova �Svet ima više slova nego što obezbeđuje ASCII �U restoranu se može jesti hotdog, ali nikada Gewürztraminer
UNIKOD �Unikod je tekući međunarodni standard definisanja karaktera svih svetskih jezika, zajedno sa simobilima iz matematike i ostalih polja �Unikod koristi jedistveni broj za svaki karakter, bez obzira na platformu, bez obzira na program, bez obzira na jezik �Na stranici http: //www. unicode. org/charts/ nalaze se definisani kompleti karaktera sa slikama �Karakteri su podeljeni u osmobitne skupove koji se zovu ravni
PYTHON 3 UNIKOD STRINGOVI �Python 3 stringovi su Unikod stringovi, a ne obični nizovi bajtova �Ovo je najveća promena u odnosu na Python 2, koji je pravio razliku između normalnih stringova sa bajtovima i stringovima sa Unikod karakterima �Python modul unicodedata ima funkcije koje prevode u: Ø lookup() – uzima ime osetljivo na veličinu slova i vraća Unikod karakter Ø name() – uzima Unikod karakter i vraća ime ispisano velikim slovima
UTF – 8 FORMAT �Kada se podaci razmenjuju sa spoljnim svetom, potrebno je pronaći način da se stringovi sa karakterima kodiraju u bajtove i pronaći način da se bajtovi dekodiraju u stringove sa karakterima �Ker Tompson i Rob Pajk su definisali UTF-8 dinamičku šemu za kodiranje �Ona koristi 1 od 4 bajta po Unikod karakteru �UTF-8 je standardni format kodiranja teksta u Python-u, Linuxu i HTML-u
KODIRANJE �String se kodira u bajtove �Prvi argument string funkcije encode() je ime koje se kodira Tabela: Kodovi ‘ascii’ Dobri stari sedmobitni ASCII ‘utf-8’ Osmobitno kodiranje varijabilne dužine, koje ćete najviše koristiti ‘latin-1’ Takođe poznato i kao ISO 8859 -1 ‘cp-1252’ Najčešće Windows kodiranje ‘unicodeescape’ Python Unikod fiksni format, uxxxx ili Uxxxx
KODIRANJE �Moguće je koristiti i neki drugi format kodiranja osim UTF-8 �Ali dobija se mnogo više grešaka ukoliko taj format ne može da izađe na kraj sa Unikod stringovima �Funkcija encode() uzima poslednji argument kako bi pomogla da se izbegne greška pri kodiranju �Njena podrazumevana vrednost je ‘strict’
DEKODIRANJE �Stringovi bajtova se dekoridaju u Unikod stringove �Kad god postoji tekst iz spoljnog izvora (fajlovi, baze podataka, veb sajtovi) on je kodiran u stringove bajtova �Savet: kad god je moguće koristi UTF-8 format kodiranja �Ukoliko bude radio, podržan je svuda, može da izrazi svaki Unikod karakter, brzo se kodira i dekodira
FORMAT �Python ima dva načina formatiranja stringa: stari i novi stil �Oba su podržana u Python-u 2 i 3 �Stari stil formatiranja koristi format string% podatak �U stringu su interpolacione liste �% unutar stringa označava da se interpolira string �Broj pojavljivanja znaka % u stringu mora se poklapati sa brojem tipova podataka nakon %
FORMAT Tabela: Tipovi konverzije %s String %d Decimalni ceo broj %x Heksadecimalni ceo broj %o Oktalni ceo broj %f Decimalni broj u pokretnom zarezu %e Eksponencijalni broj u pokretnom zarezu %g Decimalni ili eksponencijalni ceo broj u pokretnom zarezu %% Znak %
FORMAT �Novi stil formatiranja putem {} i format �Preporučuje se upotreba novog stila formatiranja �U starom stilu je neophodno dostaviti argumente po redu u kojem se karakteri % pojavljuju u stringu �Kod novog stila se može definisati redosled �Argumenti mogu biti rečnik, dok određivači mogu biti imena �Kod novog stila, preciznost vrednosti označava broj cifara nakon decimalnog zareza, i maksimalni broj karaktera za stringove, ali se ne može koristiti za cele brojeve
PRETRAGA PUTEM REGULARNIH IZRAZA �Način uklapanja komplikovanih obrazaca putem regularnih izraza �Oni se nalaze u standardnom modulu re �Potrebno je definisati obrazac stringa koji je potrebno uklopiti i izvorni string sa kojim je potrebno uklopiti željeni string �Kod pretrage, match() radi samo ukoliko je obrazac na početku izvora �Search() radi gde god se nalazio obrazac
PRETRAGA PUTEM REGULARNIH IZRAZA �Mnogi opisi regularnih izraza kreću sa svim detaljima o tome kako se definišu �Regularni izrazi su ne baš tako mali jezik za sebe, sa previše detalja koji bi pomogli programeru da bi stali u glavu odjednom �Oni koriste mnogo interpunkcije tako da se čini kao da karakteri psuju
OBRASCI: POSEBNI KARAKTERI Obrazac Rezultat d Jedna cifra D Jedna ne cifra w Jedan alfanumerički karakter W Jedan ne alfanumerički karakter s Karakter koji je belina S Karakter koji nije belina b Granica reči (između w i W u bilo kom redosledu) B Granica nečeg što nije reč
BINARNI PODACI �Python ima dosta alata za manipulisanje tekstom �Alati za binarne podatke su dosta manje zastupljeni �Standardna biblioteka sadrži modul struct, koji upravlja podacima sličnih strukturama u C i C++ jezicima �U Python-u 3 su uvedene dve liste celih brojeva od osam bajtova, sa mogućim vrednostima od 0 do 255, u dva tipa: Ø bytes je nepromenljiv, kao n-torka bajtova Ø bytearray je promenljiv, kao lista bajtova
BINARNI PODACI �Binascii () modul ima funkcije putem kojih je moguće konvertovati binarne podatke i predstave raznih tipova podataka �Neki od paketa otvorenog koda nude sledeće načine definisanja i izvlačenja binarnih podataka: Ø bistring (http: //bit. ly/py-bitstring) Ø construct(http: //bit. ly/py-construct) Ø hachoir(http: //bit. ly/hachoir-pkg) Ø binio(http: //spika. net/py/binio/)
ZNAKOVI BIT OPERACIJA Znak Opis Primer Decimalni rezultat Binarni rezultat & i a&b 1 0 b 0001 | ili a|b 5 0 b 0101 ^ isključiva disjunkcija a^b 4 0 b 0100 ~ flip bits ~a -6 Binarna predstava zavisi od veličine celog broja << pomeri ulevo a << 1 10 0 b 1010 >> pomeri udesno a >> 1 2 0 b 0010
- Slides: 17