Řetězce
Jsou ohraničeny libovolně 'jednoduchými', nebo "dvojitými" uvozovkami.
Přiřazení řetězce k proměnné se provádí s názvem proměnné následovaným rovnítkem a řetězcem.
Pomocí funkce print() můžete zobrazit řetězcový literál:
a = "ahoj"
print("ahoj")
print('ahoj')
print(a)
Uvozovky můžete použít uvnitř řetězce, pokud se neshodují s uvozovkami obklopujícími řetězec:
print("Četl jsem knihu „Malý princ“.")
print('Četl jsem knihu "Malý princ".')
print("Četl jsem knihu 'Malý princ'.")
print("rock’n’roll")
print("rock'n'roll")
Víceřádkové řetězce:
a = """Víceřádkový řetězec
můžete přiřadit proměnné
pomocí trojice uvozovek"""
print(a)
b = '''Víceřádkový řetězec
můžete přiřadit proměnné
pomocí trojice uvozovek'''
print(b)
'''Nepřiřazený řetězec je ignorován a trochu
nazamýšleně může být použit jako víceřádkový komentář.'''
Zřetězení
Ke spojení dvou a více řetězců můžete použít + operátor:
a = "první"
b = "druhý"
c = a + ' ' + b
print(c)
Řetězce jsou pole
Stejně jako mnoha jiných programovacích jazyků jsou řetězce pole bajtů představující znaky unicode. Python však nemá datový typ znak. Jeden znak je řetězec o délce 1.
Pro přístup k prvkům řetězce lze použít hranaté závorky [ ].
Zápis a[1]vrátí druhý znak řetězce a. První znak má pozici 0!:
a = "ahoj"
print(a[1])
Procházení řetězce cyklem
Protože jsou řetězce pole, můžeme procházet znaky v řetězci pomocí smyčky for.
for znak in "ahoj":
print(znak)
Délka řetězce
Chcete-li získat délku řetězce, použijte funkci len().
a = "ahoj"
print(len(a))
Zjištění (podřetězce) substringu
Chcete-li zjistit, jestli řetězec obsahuje určitou frázi nebo znak, můžete použít klíčové slovo in a not in:
text = 'Četl jsem knihu "Malý princ".'
print("jsem" in text) # vrátí pravdivostní hodnotu 'True'
print("jsem" not in text) # vrátí pravdivostní hodnotu 'False'
Použití v podmínce if:
text = 'Četl jsem knihu "Malý princ".'
if "princ" in text:
print("Text obsahuje slovo 'princ'.")
if "princ" not in text:
print("Text neobsahuje slovo 'princ'.")
Získání (podřetězce) substringu
a = "řetězec"
print(a[2:5]) # První znak má pozici 0!
print(a[:5]) # rozsah od počátku
print(a[2:]) # rozsah do konce
print(a[-3:-1]) # negativní indexy jsou počítány od konce řetězce
Další metody pro práci s řetězci:
a = " malý řetězec nebo VELKÝ ŘETĚZEC "
print(a.upper()) # vrací velká písmena
print(a.lower()) # vrací malá písmena
print(a.strip()) # vrací řetězec bez mezer a tabulátorů na začátku a konci
print(a.replace("etě", "iťole")) # nahradí substring jiným
print(a.replace("ETĚ", "IŤOLE")) # ale rozlišuje malá a velká písmena
print(a.split("nebo")) # vrací seznam substringů rozdělených zvoleným separátorem
print(a.replace("etě", "iťole").replace("ETĚ", "IŤOLE").strip())
Formátování řetězců
F-String byl představen v Pythonu 3.6 a nyní je preferovaným způsobem formátování řetězců.
Chcete-li zadat řetězec jako f-řetězec, jednoduše vložte f před řetězcový literál a přidejte složené závorky {} jako zástupné symboly pro proměnné a další operace:
rok = 2025
text = f"Rok {rok}"
print(text)
Zástupný symbol může obsahovat modifikátor pro formátování hodnoty.
Modifikátor tvoří dvojtečka : a typ formátování, například .2f, což znamená číslo s pevnou čárkou se 2 desetinnými místy:
cena = 45
text = f"Cena je {cena:.2f} korun."
print(text)
Zástupný symbol může obsahovat kód a matematické operace:
text = f"Cena je {3 * 5} korun."
print(text)
Escapování
Chcete-li do řetězce vložit znaky, které jsou nepovolené, použijte zpětné \ lomítko.
Znak escape je zpětné lomítko \ následované znakem, který chcete vložit.
Příkladem nepovoleného znaku je dvojitá uvozovka uvnitř řetězce, který je obklopen dvojitými uvozovkami:
text = "Četl jsem knihu \"Malý princ\"."
print(text)
Další používané escape znaky:
| znak | význam |
|---|---|
| \‘ | jednoduchá uvozovka |
| \\ | zpětné lomítko |
| \n | nový řádek |
| \r | Carriage Return (CR) – návrat na začátek řádku |
| \t | tabulátor |
| \b | backspace |
| \f | Form Feed (FF) – přechod na novou stránku |
| \ooo | osmičková hodnota |
| \xhh | hexadecimální hodnota |
Seznam vestavěných metod pro práci s řetězci:
| metoda | popis |
|---|---|
| capitalize() | Převede první znak na velká písmeno. |
| casefold() | Převádí na malá písmena s lepší podporou mezinárodních Unicode znaků než lower(), která například netransformuje ß na ss. |
| center() | Vrátí vycentrovaný řetězec. |
| count() | Vrátí, kolikrát se zadaná hodnota vyskytuje v řetězci. |
| encode() | Vrátí zakódovanou verzi řetězce. |
| endswith() | Vrátí hodnotu True, pokud řetězec končí zadanou hodnotou. |
| expandtabs() | Nastaví velikost tabulátoru řetězce. |
| find() | Vyhledá v řetězci zadanou hodnotu a vrátí pozici, kde byla nalezena. |
| format() | Formátuje zadané hodnoty v řetězci. |
| format_map() | Formátuje zadané hodnoty v řetězci. |
| index() | Vyhledá v řetězci zadanou hodnotu a vrátí pozici, kde byla nalezena. |
| isalnum() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci alfanumerické. |
| isalpha() | Vrátí True, pokud jsou všechny znaky v řetězci v abecedě. |
| isascii() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci znaky ASCII. |
| isdecimal() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci desetinné. |
| isdigit() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci číslice. |
| isidentifier() | Vrátí hodnotu True, pokud je řetězec identifikátorem. |
| islower() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci malé. |
| isnumeric() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci číselné. |
| isprintable() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci tisknutelné. |
| isspace() | Vrátí True, pokud jsou všechny znaky v řetězci mezery. |
| istitle() | Vrátí hodnotu True, pokud řetězec splňuje pravidla názvu. |
| isupper() | Vrátí hodnotu True, pokud jsou všechny znaky v řetězci velké. |
| join() | Připojí prvky iterovatelného ke konci řetězce. |
| ljust() | Vrátí verzi řetězce zarovnanou doleva. |
| lower() | Převede řetězec na malá písmena, ale Unicode znaky jako ß na ss narozdíl od casefold() nepřevádí. |
| lstrip() | Vrátí řetězec oříznutý o bílé znaky vlevo. |
| maketrans() | Vrátí překladovou tabulku, která se má použít při překladech. |
| partition() | Vrátí n-tici, kde je řetězec rozdělen na tři části. |
| replace() | Vrátí řetězec, kde je zadaná hodnota nahrazena zadanou hodnotou. |
| rfind() | Vyhledá v řetězci zadanou hodnotu a vrátí poslední pozici, kde byla nalezena. |
| rindex() | Vyhledá v řetězci zadanou hodnotu a vrátí poslední pozici, kde byla nalezena. |
| rjust() | Vrátí verzi řetězce zarovnanou vpravo. |
| rpartition() | Vrátí n-tici, kde je řetězec rozdělen na tři části. |
| rsplit() | Rozdělí řetězec na zadaném oddělovači a vrátí seznam. |
| rstrip() | Vrátí řetězec oříznutý o bílé znaky vpravo. |
| split() | Rozdělí řetězec na zadaném oddělovači a vrátí seznam. |
| splitlines() | Rozdělí řetězec na zalomení řádků a vrátí seznam. |
| startswith() | Vrátí hodnotu True, pokud řetězec začíná zadanou hodnotou. |
| strip() | Vrátí řetězec oříznutý o bílé znaky na začátku i konci. |
| swapcase() | Zamění malá a velká písmena. |
| title() | Převede první znak každého slova na velká písmena. |
| translate() | Vrátí přeložený řetězec. |
| upper() | Převede řetězec na velká písmena. |
| zfill() | Vyplní řetězec zadaným počtem 0 hodnot na začátku. |
