String u Python-u predstavlja niz karaktera (niz slova, znakova i cifara). Služi za skladištenje i predstavljanje tekstualnih podataka.

Величина: px
Почињати приказ од странице:

Download "String u Python-u predstavlja niz karaktera (niz slova, znakova i cifara). Služi za skladištenje i predstavljanje tekstualnih podataka."

Транскрипт

1 Stringovi u Python-u String u Python-u predstavlja niz karaktera (niz slova, znakova i cifara). Služi za skladištenje i predstavljanje tekstualnih podataka. Za razliku listi, string predstavlja nepromenljiv tip, što znači da kada promenljivoj tipa string dodelite neku vrednost nije moguće tu vrednost menjati. U situacijama kada je neophodno promeniti vrednost stringa prvo se pravi kopija pa se u kopiji prave željene promene. Po strukturi string je sličan listi, samo što je vrednos u stringu ne može menjati. Elementi stringa imaju svoju poziciju u stringu koja je određena indeksom, kao i u listi. Primer: String: P Y T H O N Indeks: Neg. indeks: Kod negativnog indeksiranja indeksiranje ide sa desna na levo, počinje od - 1, za poslednji element u stringu, - 2 je za pretposlednji, itd. do - 6 (-1, - 2, - 3, - 4, - 5, - 6). Kreiranje stringa U Pyton-u se string može kreirati na tri načina. Dozvoljeno je koristiti jednostruke, dvostruke i trostruke navodnike. U slučaju trostrukih navodnika, string se može definisati u više različitih redova. Primer: predmet ='Informatika' uspeh = "Odličan" stihovi = """Da li čujes mila moga konja kas. Da li čuješ sa planina zove te moj glas.""" prazan_string = string_broj1 = 124 string_broj2 = 124 string_broj3 =

2 Pretvaranje stringa u broj: int( 10 ) = 10, float( 10.5 ) = 10.5 Pretvaranje broja u string: str(10) = 10, str(10.5) = 10.5 Pretvaranje stringa u izraz Za pretvaranje stringa u izraz koristi se funkcija eval(). Ona sve što je napisano u stringu pretvara u Python izraze i izvršava ih. Primer 1: U prvom slučaju na izlazu je štampan string "10 + 5". U drugom slušaju je string pretvoren u izraz , obavljeno je sabiranje brojeva, a zatim je na izlazu štampan broj 15. Primer 2: U ovom primeru, eval funkcija je prvo string pretvorila u izraz, zatim su sabrani brojevi 10 i 5, na kraju je taj zbir (15) funkcijom float pretvorila u realan broj Primer 3:

3 Pristupanje elementima stringa Moguće je pristupiti bilo kom elementu stringa pojedinačno navodeći njegov indeks. Primer: Moguće je pristupati elementima stringa unazad navodeći negativne indekse. Poslednji element niza ima index -1, pretposlednji -2 i tako dalje. Primer: Segmentacija stringa Segment (slice) se koristi za uzimanje dela stringa. Na primer, ako umesto jednog indeksa kome želimo da pristupimo navedemo dva indeksa odvojena sa : dobićemo ceo niz karaktera koji se nalazi između ta dva indeksa. I ovde je takođe moguće koristiti negativne indekse i moguće je kombinovati negativne i pozitivne indekse. Primeri: U drugom primeru jmbg je string. Iz njega su izdvojeni dan i mesec rođenja, koji su takođe stringovi. U funkciji print je napravljeno je nadovezivanje stringova korišćenjem operatora +.

4 Primeri segmentacije stringa: index: slova: a b c d e f g h i j Kod Rezultat Opis s[2:5] cde Slova sa ideksom 2, 3, 4 s[ :5] abcde Prvih pet slova s[5: ] fghij Slova od indeksa 5 do kraja s[-2: ] ij Poslednja dva slova s[ : ] abcdefghij Čitav string s[1:7:2] bdf Slova od indeksa 1 do 6, svako drugo s[ : :-1] jihgfedcba Negativan korak unazad Nadovezivanje stringova Stringovi mogu da se povežu upotrebom operatora +. Na taj način vršimo nadovezivanje vrednosti stringova. Primeri: U funkciji print nadovezani su ( sabrani ) string a i string b, upotrebom operatora +. Primeri: Izraz AB + cd A B Rezultat ABcd A7B

5 Umnožavanje stringova Stringovi mogu da se ponove više puta upotrebom operatora *. Na taj način vršimo umnožavanje vrednosti stringova. Ako želimo da štampamo dugačak red crtica, to možemo da uradimo na sledeći način: Poređenje dva stringa Postoje dva operatora koja se mogu koristiti za poređenje dva stringa. Prvi je operator == koji služi za proveru jednakosti stringova a drugi operator!= koji služi za proveru nejednakosti dva stringa. Kao rezultat izvršenja ova dva operatora dobijamo vrednosti True ili False. Primer: sport1 = "fudbal" sport2 = "tenis" sport1 == sport2 sport1!= sport2 -> False -> True Dužina stringa Funkcija len() se koristi za vraćnje dužine stringa koji joj je prosleđen. Treba uzeti u obzir da će len() funkcija uračunava slova, cifre, prazna mesta i specijalne karaktere u dužinu stringa. Primer 1:

6 Primer 2: Primer 3: String metode Stringovi dolaze sa mnoštvom metoda, koje nam daju razne informacije o stringu ili vraćaju nove stringove koji su modifikacija originala. Primenjuju se na isti način kao i metode za liste. Evo nekoliko korisnih metoda: Metod lower() upper() replace(x,y) count(x) index(x) isalpha() Opis Vraća string sa svim slovima konvertovanim u mala slova Vraća string sa svim slovima konvertovanim u velika slova Vraća string u kojem su izmenjena sva pojavljivanja x sa y Prebrojava koliko se puta x pojavljuje u stringu Vraća indeks pozicije prvog pojavljivanja x u stringu Vraća True ako je svako slovo u stringu alfa tipa Važna napomena Jedna važna napomena za metode lower, upper, and replace je da one ne menjaju originalni string. Ako želite da promenite string s, recimo na sva mala slova, nije dovoljno da samo koristite s.lower(). Potrebno je da napišete: s = s.lower()

7 Pretvaranje velikih slova u mala i obrnuto Za konvertovanje velikih slova u mala koristi se metoda lower(), a za konvertovanje malih u velika slova metoda upper(). Podela stringa Metoda split() služi nam za podelu stringa na više delova po nekom parametru. Postoji i rsplit() verzija funkcije split() koja počinje sa podelom od poslednjeg elementa stringa i kreće se kroz string unazad. Ovim metodama moguće je proslediti opcioni parametar koji predstavlja mesto podele stringa. Zamena delova stringa Metoda replace() se koristi za zamenu dela stringa nekim drugim stringom. Pošto su stringovi kao što smo u uvodu videli nepromenljivi ova metoda neće direktno raditi nad nizom nad kojim je pozvana već će napraviti novu kopiju niza sa traženim promenama. Ta kopija biće povratna vrednost ove metode.

8 Pretraga u stringu Postoje više metoda koje se koriste za pronalaženje podstringova, mi ćemo pomenuti dve, find() i index(). Ove metode vraćaju indeks na kome se nalazi prvo slovo traženog podstringa. Razlika između njih je u tome što će u slučaju da ne pronađe traženi podstringa, find() vratiti -1 vrednost dok će index baciti ValueError izuzetak. Primeri: Za proveru stečenog znanja uradite upitnik na linku:

9 ZADACI ZA VEŽBU 1. Napiši program koji unosi ime i ispisuje poruku da li je upisano ime muško ili žensko. Ako se ime završava na a, ispisaće se poruka 'Ime je žensko ime', u suprotnom će se ispisati poruka 'Ime je muško ime. 2. Napiši program koji omogućava unos dve reči i ispisuje poruku koja reč je duža. 3. Napiši program koji unosi rečenicu na engleskom jezika i ispisuje je u tako što će svako I za prvo lice jednine, ak je napisano kao malo slovo, i da zameni velikim slovom I. 4. Napiši program koji omogućava unos nekog broja i ispisuje cifre tog broja.

10 5. Napiši program koji omogućava unos nekog broja i ispisuje kao broj obrnutim redosledom cifara od unetog. 6. Napiši program koji omogućava unos nekog broja i izračunava zbir njegovih cifara. 7. Napiši program koji omogućava unos neke reči i ispisuje slovo po slovo te reči. 8. Napišite program koji traži od korisnika da unese string, a onda štampa sve pozicije na kojima se nalazi slovo a u stringu.