Zápis řetězců

Řetězce zapisujeme do uvozovek nebo apostrofů. V Pythonu 3 mohou řetězce obsahovat i znaky z diakritikou.

a = "Toto je řetězec"

b = 'Toto je taky řetězec'

print(a, b)

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'

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

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 znaku c,
  • chr(i) vrátí znak s pořadovým číslem i.

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:

start = ord('A')

for i in range(26):

    print(chr(start + i))

Rozhodovačka

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


Řetězce v Pythonu   


Výstup programu

Cvičení, ve kterém dostanete krátký program a máte určit, co vypíše.


Řetězce v Pythonu   


Porozumění programům

Prohlédněte si vypracované řešení příkladů v Pythonu. Pro každý ukázkový program dostanete několik kontrolních otázek, které testují schopnost číst zdrojový kód a porozumět mu.


Řetězce 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.


Řetězce v Pythonu

NAPIŠTE NÁM

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Časté dotazy Návody pro rodiče Návody pro učitele

Čeho se zpráva týká?

Obsah Ovládání Přihlášení Licence Různé

Text zprávy

E-mailová adresa (ať Vám můžeme odpovědět)


Odeslat

Vzhledem k uzavření škol mají systémy Umíme zvýšený provoz a množství dotazů. Prosím zasílejte pouze nezbytné dotazy a připomínky. Před zasláním dotazu si prosím prohlédněte časté dotazy. Děkujeme za pochopení.
Prosím nezasílejte dotazy na prozrazení řešení úloh či na vysvětlení postupu. Děkujeme.