Python: niske (stringovi) — informatika za 6. razred

Gradivo za 6. razred

Ime korisnika, lozinka, reč u igri vešala — sve su to niske (stringovi), tj. tekst sa kojim program radi. U 6. razredu se u Pythonu uči kako se meri dužina niske, kako se dolazi do pojedinačnog znaka ili dela teksta, kako se proverava da li se neko slovo nalazi u reči i kako se niske spajaju, porede i pretvaraju u brojeve i nazad.

Na ovoj strani ukratko obnavljaš gradivo, a zatim vežbaš u kvizu. Tamo određuješ šta daju indeksi i isecanja, šta ispisuju kratki programi sa niskama, koja od dve reči dolazi prva i za koje unete reči program ispisuje DA. Programe pišeš i pokrećeš na času; kviz vežba da ih čitaš i predviđaš rezultat.

Učitavanje lokalnog napretka...

Vežbaj niske u Pythonu →

Zašto vežbati niske na Spremku

Ovde se lako pomešaju indeks i redni broj slova, s[5] i s[-1], uključen i neuključen kraj isečka, spajanje i ponavljanje, niska "5" i broj 5, abecedni poredak i dužina reči. U kvizu određuješ koji znak daje svaki indeks i šta daje svako isecanje, upisuješ šta ispisuje kratak program, biraš reči za koje uslov važi i porediš niske. Primeri su u Pythonu, koji koristi većina škola. Kviz prati gradivo informatike za 6. razred, uz svaki odgovor dobijaš objašnjenje na srpskom, a besplatan je i bez registracije.

Gradivo i objašnjenje

Niska, dužina i indeksi

Niska se piše u jednostrukim ili dvostrukim navodnicima, koji moraju biti isti na početku i kraju; ista reč zapisana na oba načina daje istu nisku. Funkcija len daje broj znakova, a broje se i razmaci i znaci interpunkcije, pa je len("Dobar dan") jednako 9. Prazna niska "" ima dužinu 0. Znakovi su numerisani indeksima od 0: s[0] je prvi znak, s[1] drugi, a s[-1] poslednji. Niska od 5 znakova ima indekse od 0 do 4, pa je s[5] greška, a poslednji znak je i s[len(s) - 1]. Niska se ne menja znak po znak: naredba s[0] = "k" je greška, a nova reč se pravi spajanjem. Broj nema dužinu, pa len(345) javlja grešku, a len(str(345)) daje 3.

Isecanje, operator in i petlja kroz nisku

Isecanje s[a:b] uzima znakove od indeksa a do indeksa b, pri čemu znak sa indeksom b nije uključen. Za s = "prozor" isečak s[0:3] je "pro", dakle tri znaka, sa indeksima 0, 1 i 2. Prva tri slova reči uvek daje s[0:3], a ne s[1:4]. Operator in proverava da li se znak ili deo teksta nalazi u niski i daje True ili False. Duži deo mora da bude uzastopan, pa je "fak" in "kafa" netačno, iako sva slova postoje. Python razlikuje velika i mala slova: malo z nije isto što i veliko Z. Petlja for c in rec: prolazi kroz znakove niske redom, pa se njome mogu prebrojati slova ili napisati reč unazad.

Spajanje, ponavljanje, konverzija i poređenje

Operator + spaja niske tačno onakve kakve jesu, bez dodatnog razmaka: "Zdravo" + ime daje ZdravoAna, pa razmak mora da bude unutar navodnika. Niska pomnožena celim brojem se ponavlja: "ha" * 3 daje hahaha, a kao u matematici, * se računa pre +. Funkcija str pretvara broj u nisku, a int nisku u ceo broj. Zato str(5) * 3 daje 555, a 5 * 3 daje 15, dok "5" + "3" daje 53, a ne 8. Niska i broj ne mogu da se spoje bez str, to je greška. Niske se porede leksikografski, kao reči u rečniku: slovo po slovo do prvog različitog, pa je "ana" < "baba" tačno, a kraća reč koja je početak duže dolazi prva.

Ključni pojmovi

Indeks

Redni broj znaka u niski, koji počinje od 0; s[-1] je poslednji znak.

Isecanje s[a:b]

Deo niske od indeksa a do indeksa b, bez znaka sa indeksom b.

Operator in

Proverava da li se znak ili uzastopan deo teksta nalazi u niski i daje True ili False.

Leksikografski poredak

Poređenje niski kao reči u rečniku, slovo po slovo do prvog različitog slova.

Najčešće greške

Pokreni kviz → Pogledaj povezane oblasti

Sledeći korak

Posle kratkog ponavljanja pokreni kviz, a zatim nastavi kroz povezane oblasti ili se vrati na razredni pregled.

Česta pitanja

Zašto indeksi niske počinju od 0?

Tako je u Pythonu dogovoreno: indeks kaže koliko je znak udaljen od početka niske. Zato je prvi znak s[0], a niska od 7 znakova ima indekse od 0 do 6. Poslednji znak je i s[-1].

Šta daje isecanje s[2:5]?

Znakove sa indeksima 2, 3 i 4: početni indeks se uključuje, a krajnji ne. Za s = "kalendar" to je "len". Broj znakova u isečku je razlika indeksa, 5 − 2 = 3.

Kako se porede dve niske u Pythonu?

Leksikografski, kao reči u rečniku: porede se slova redom do prvog različitog. Zato je "ana" < "baba" tačno, a "zec" < "medved" netačno, iako je reč zec kraća. Ako je jedna reč početak druge, kraća dolazi prva.

Pokreni kviz →