Nadřazené | Datové typy a jejich využití |
Předcházející | Cyklus for v Pythonu, Kódování textu v počítačích |
Navazující | Slovníky v Pythonu, Práce se soubory |
Zápis řetězců
Řetězce zapisujeme do uvozovek nebo apostrofů. V Pythonu 3 mohou řetězce obsahovat i znaky s diakritikou.
Indexování
K jednotlivým znakům řetězce přistupujeme pomocí indexování hranatými závorkami. Pozor, indexujeme od nuly. Python (na rozdíl od většiny jiných programovacích jazyků) umožňuje indexovat i od konce pomocí záporných čísel.
text = "prase"
text[0] # první písmeno => 'p'
text[1] # druhé písmeno => 'r'
text[4] # páté, poslední písmeno => 'e'
text[-1] # poslední písmeno => 'e'
text[-2] # předposlední písmeno => 's'
Pomocí dvojtečky můžeme indexovat podřetězec.
text = "panoramata"
print(text[2:6]) # od 2. po 6. pozici => nora
print(text[:3]) # první 3 znaky => pan
print(text[-4:]) # poslední 4 znaky => mata
Pokročilejším prvkem pak je využití dvou dvojteček, kde třetí hodnota udává délku skoku:
text = "Běží-liška-k-táboru"
print(text[5:15:2]) # od 5. po 14. pozici, ob 2 => lšakt
print(text[::3]) # od začátku do konce, ob 3 => Bíia-bu
print(text[::-1]) # pozpátku => urobát-k-akšil-ížěB
Iterování přes řetězec
Jednotlivé znaky řetězce můžeme snadno procházet pomocí for cyklu.
Neměnitelnost řetězců
Řetězce jsou v Python neměnitelný datový typ. To je jeden z výrazných rysů, ve kterých se liší od seznamů. Neměnitelnost znamená, že nemůžeme změnit dílčí písmeno v znaku. Musíme vytvořit nový řetězec, ve kterém bude příslušné písmeno změněno.
text = "kopec"
text[2] = "n" # TypeError - řetězec neumožňuje změnu znaku
text = text[:2]+"n"+text[3:] # vytvoříme nový, upravený řetězec
print(text)
Operace s řetězci
Řetězce můžeme sčítat (= zřetězit). Řetězce můžeme také násobit celým číslem (= opakovaně zřetězit). Mezi další užitečné operace patří zjištění délky (len
) či test na přítomnost podřetězce (in
).
text = "petr"
text + "klíč" # => petrklíč
3*text # => petrpetrpetr
len(text) # => 4
"e" in text # => True
Řetězce jsou objekty, které mají k dispozici řadu užitečných metod, které voláme pomocí tečkové notace. Příklady jsou převod na velká/malá písmena (upper, lower
), rozdělení řetězce podle zadaného znaku (split
), nebo nahrazování podřetězce (replace
):
text = "Liberec"
text.upper() # => LIBEREC
text.lower() # => liberec
text.split("e") # => ['Lib', 'r', 'c']
text.replace("ber", "dej") # => Lidejec
Všimněte si, že zde využíváme takzvanou tečkovou notaci: píšeme text.upper()
, nikoliv běžné volání funkce tvaru upper(text)
. To souvisí s tím, že řetězce jsou reprezentovány jako objekty.
Operace se znaky
Při práci s řetězci se občas hodí i operace pro manipulaci s jednotlivými znaky, především funkce ord
a chr
, které převádí znaky na celá čísla a zpět:
ord(c)
vrátí pořadové číslo znakuc
,chr(i)
vrátí znak s pořadovým číslemi
.
Pod „pořadové číslo“ se rozumí číslo v kódování Unicode. Pro základní programátorské úlohy stačí vědět, že písmena jsou v tomto kódování abecedně za sebou (bohužel to však platí jen pro písmena anglické abecedy). Takto tedy můžeme vypsat písmena anglické abecedy:

Rozhodovačka
Rychlé procvičování výběrem ze dvou možností.

Řetězce v Pythonu (lehké)
49 zadání
Typicky zabere: 5 min
Ukázka
Určete hodnotu výrazu:len(5 * '*' + '*' * 2)
Co vypíše program?text = "prase"
print(text[1])
Co vypíše program?text = "Ostrava"
text = text.lower()
print(text)

Řetězce v Pythonu (střední)
53 zadání
Typicky zabere: 7 min
Ukázka
Pravda nebo nepravda?chr(ord('a')) == 'a'
Vytvořte celer:x = 'ceer'
Kolik řádků se vypíše?for x in 'celer mrkev':
print(x)

Řetězce v Pythonu (těžké)
54 zadání
Typicky zabere: 13 min
Ukázka
Jak zjistit počet řádů přirozeného čísla x?Vypíše se celer?for i in range('zelenina'):
print('celer')
Pravda nebo nepravda?int('5' + 3 * '0') > 1000

Psaná odpověď
Cvičení, ve kterém píšete odpověď na klávesnici.

Řetězce v Pythonu (lehké)
21 zadání
Typicky zabere: 3 min
Ukázka
text = "Brno"
text = text.lower()
print(text[0])
text1 = "petr"
text2 = "klic"
print(text1 + text2)
text = "pes"
x = 3
print(text * x)

Porozumění
Prohlédněte si vypracované řešení příkladů v Pythonu či ukázkové modely. Pro každý příklad dostanete několik kontrolních otázek, které otestují vaše porozumění problému.
Řetězce v Pythonu
Řešené příklady na práci s řetězci v Pythonu.

Programování v Pythonu
Programování přímo v prohlížeči, s automatickým vyhodnocením správnosti programu. Cvičení používá programovací jazyk Python 3.
V tomto cvičení píšete programy, které pracují s textem a čísly. Pokud chcete obrázky, zkuste cvičení Python želva.