Reťazce (angl. strings) sú jedným z najpoužívanejších dátových typov v programovaní. Kdekoľvek program pracuje s textom — mená, správy, adresy — pracuje s reťazcami.
Čo je reťazec?
Reťazec je postupnosť znakov uzavretá v úvodzovkách. Python akceptuje jednoduché aj dvojité úvodzovky:
pozdrav = "Ahoj, svet!"
meno = 'Katarína'
prazdny = "" # prázdny reťazec
Pre viac riadkový reťazec použi tri úvodzovky:
text = """Toto je
viacriadkový
reťazec."""
Prístup k znakom — indexovanie
Každý znak v reťazci má index (poradové číslo), začínajúce od 0:
slovo = "Python"
# 012345
print(slovo[0]) # P
print(slovo[2]) # t
print(slovo[-1]) # n (posledný znak)
print(slovo[-2]) # o (predposledný)
Vystrihnutie časti reťazca (slicing)
text = "Dobrý deň"
print(text[0:5]) # "Dobrý" (od indexu 0 po 4)
print(text[6:]) # "deň" (od indexu 6 do konca)
print(text[:5]) # "Dobrý" (od začiatku po 4)
print(text[::2]) # každý druhý znak
Syntax pre slice je [start:stop:krok]. Hodnota stop nie je zahrnutá — text[0:5] vráti znaky na indexoch 0, 1, 2, 3, 4.
Dôležité metódy reťazcov
veta = " Ahoj, Svet! "
print(veta.upper()) # " AHOJ, SVET! "
print(veta.lower()) # " ahoj, svet! "
print(veta.strip()) # "Ahoj, Svet!" (odstráni medzery)
print(veta.replace("Svet", "Python")) # " Ahoj, Python! "
print(veta.find("Svet")) # 8 (index prvého výskytu)
print(veta.count("!")) # 1 (počet výskytov)
print("ahoj".startswith("ah")) # True
print("python".endswith("on")) # True
Rozdeľovanie a spájanie
veta = "jablko,banán,čerešňa"
ovocie = veta.split(",") # ["jablko", "banán", "čerešňa"]
zoznam = ["Pondelok", "Utorok", "Streda"]
text = ", ".join(zoznam) # "Pondelok, Utorok, Streda"
split() a join() sú navzájom opačné operácie. split() rozdeľuje reťazec na zoznam, join() spája zoznam do reťazca.
Formátovanie reťazcov — f-strings
F-strings (formátovacie reťazce) sú moderný a čitateľný spôsob vloženia premenných do reťazca:
meno = "Tomáš"
vek = 15
vyska = 170.5
info = f"Volám sa {meno}, mám {vek} rokov a meriam {vyska:.1f} cm."
print(info)
# Volám sa Tomáš, mám 15 rokov a meriam 170.5 cm.
Reťazce sú nemenné
Reťazce v Pythone nemôžeš meniť na mieste — musíš vytvoriť nový reťazec:
slovo = "ahoj"
# slovo[0] = "A" # CHYBA — reťazce sú nemenné (immutable)
slovo = "A" + slovo[1:] # vytvorí nový reťazec "Ahoj"
Opakované spájanie reťazcov v cykle pomocou + je neefektívne pre veľké texty, pretože zakaždým sa vytvorí nový reťazec. Pre veľké množstvo operácií použi zoznam a join().
Cvičné príklady
Čo vypíše tento kód? text = 'informatika'; print(text[4:9].upper())
Zobraziť odpoveď
Napíš kód, ktorý zistí, či zadané slovo je palindróm (číta sa rovnako zpredu aj zozadu), napr. 'radar'.