Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Programiranje 1 Uvod u programski jezik Python, Slajdovi od Programiranje

ETF Beograd::Programiranje 1. Kolekcije. Uređene. (sekvence). Stringovi. Liste. Torke. Neuređene. Skupovi. Rečnici. Nepromenljivi. Promenljivi ...

Tipologija: Slajdovi

2022/2023

Učitan datuma 13.01.2023.

lia_88
lia_88 🇲🇪

4.4

(10)

265 dokumenti

1 / 62

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
Programiranje 1
Kolekcije objekata
na programskom jeziku Python
Univerzitet u Beogradu
Elektrotehnički fakultet
2019/2020.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e

Delimični pregled teksta

Preuzmite Programiranje 1 Uvod u programski jezik Python i više Slajdovi u PDF od Programiranje samo na Docsity!

Programiranje 1

Kolekcije objekata

na programskom jeziku Python

Univerzitet u Beogradu

Elektrotehnički fakultet

Sekvence, skupovi i rečnici

Stringovi – tip str

 Tekstualne sekvence predstavljaju tekstualni objekat tipa str  Moguće je kreirati ga dodelom vrednosti  Tekst u istom redu okružuje se apostrofima ili navodnicima  Tekst u više redova se okružuje trostrukim apostrofima ili navodnicima  Može se kreirati i konstruktorom str()  Na primer str(3.14) daje '3.14', a str(True)daje 'True'

Komponente stringa

 String je sačinjen od znakova (karaktera)

 Karakter predstavlja pisani simbol koji ima

svoju numeričku (binarnu) reprezentaciju u memoriji

⚫ Binarna reprezentacija zavisi od sistema kodiranja

 Osnovni ASCII sistem kodira znakove sa 7 bita

⚫ Sadrži 128 znakova ⚫ Prošireni ASCII kodira sa 8 bita, odnosno sadrži 256 znakova

 Python koristi Unicode stanadard

⚫ Standard određuje skup znakova koji se koriste i bazično ih numeriše 16-bitno

 Za samo kodiraje koristi se UTF- 8 sistem

⚫ Svaki karakter predstavlja sa 8 do 32 bita

Znakovi

>>> ord('A') 65 >>> chr(65) 'A' >>> ord(' ч ') 1095 >>> chr(1096) ' Ш ' >> len("Alfanumerik") 11 Važi: ord(chr(broj)) == broj chr(ord(znak) == znak

Komponente stringa (2)

 Znakovi (komponente) stringa se indeksiraju od 0 do n-1,

ako je n dužina stringa

 Kao i kod liste, poslednji element se može indeksirati

sa - 1, a negativni indeksi koriste se na isti način

⚫ Dozvoljen slicing

>>> b = "Hello, World!"

>>> print(b[-5:-2])

orl

>>> print(b[1:10:2])

el,Wr

 Pristup elementu koji ne postoji (npr. b[ 100 ])

prijavljuje grešku

IndexError: string index out of range

Delovi stringa – slicing (negativan korak) a[:] # ceo string a[start:stop:step] # sa korakom step a[-1] # poslednji element a[-2:] # poslednja dva a[::-1] # svi, obrnuto a[1::-1] # prva dva, obrnuto a[:-3:-1] # poslednja dva, obrnuto a[-3::-1] # sve sem poslednja 2,

obrnuto

a[:-2] # sve sem poslednja 2

kada je korak negativan, od kraja ka po četku!

Relacione operacije

 Na dva stringa moguće je primeniti relacione operatore ⚫ == i != porede stringove znak po znak ⚫ >, <, >=, <= koriste leksikografski poredak: redom poredi odgovarajuće znakove iz dve sekvence po rezultatu metode ord(znak) ⚫ Ukoliko su znaci jednaki, a u sledećem koraku se jedan string iscrpi, on je manji >>> print ("a"<"b","aaa"<"b","aa"<"aab") True True True

Pripadnost i nadovezivanje (2)

 Postoji i operator not in >>> poruka = " Srećna Nova godina! " >>> print ("Z" not in poruka) True  Nadovezivanje korišćenjem operatora +=: >>> zdravica += poruka >>> print (zdravica) Živeli!!!!! Srećna Nova godina!  Prefiks r služi da se escape sekvenca doslovno tumači kao tekst ⚫ Bez r je \n specijalna sekvenca za prelazak u novi red >>> print(r"\n") \n

Nepromenljivost stringa

 Neophodno je naglasiti da je string nepromenljiv tip! >>> niz = "Babe" >>> niz[0] = " Ž "

generiše se greska

TypeError: 'str' object does not support item >>> id(niz) 1630486115312 >>> niz+=" i žabe " >>> id(niz) 1630486144176

Formiran je novi string "Babe i žabe "!

Različiti objekti!

Neke metode za rad sa stringom (2)

Metoda Opis t.find(t1) t.rfind(t1) Vraća indeks prvog pojavljivanja podstringa t1 u t. Vraća - 1 ako ga nema u t. Prefiks r – poslednje pojavljivanje. t.startswith(t1) t.endswith(t1) Vraća True ukoliko string t počinje prefiksom t1. Vraća True ukoliko se string t završava prefiksom t1. t.replace(ts,tp) (^) Vraća novi tekst sa zamenjenim ts sa tp t.join(iterable) Vraća string koji konkatenira elemente iz iterable sa separatorom t ("-".join("123") daje 1 - 2 - 3 t.split([sep]) Vraća listu reči na osnovu delimitera sep. t.partition(sep) Vraća 3 - tuple gde je prva komponenta string pre sep, druga sam sep, a treća string iza sep. Ako ne nađe sep, prva je ceo string, a druga i treća su prazne.

String – primer provere palindroma (1)

 Pronalaženje svih palindroma u stringu  Najpre je data iterativna verzija: def palindromI(tekst): ''' da li je tekst palindorm ''' n = len(tekst) limit = n// for i in range(limit): if tekst[i] != tekst[-i-1]: return False return True

String – primer provere palindroma (3)

 Primer korišćenja: tekst = input('tekst? ') n = len(tekst) for duzina in range(n, 0, - 1 ): for pocetak in range(0, n-duzina+1): podtekst = tekst[pocetak : pocetak+duzina] if palindromR(podtekst): print(podtekst)

Formatiranje teksta (1)

 Koristi se metoda format() string objekta  Raspoređuje argumente na mestima vitičastih zagrada  Redom ili po brojevima (indeksima) u zagradama  Prvom argumentu odgovara redni broj 0 >>> '{} unija {}'.format('A', 'B') ’A unija B’ >>> 'pi = {}'.format(3.14) 'pi = 3.14' >>> '{2}-{1}-{0}'.format('I', 'II', 'III') 'III-II-I'