Ř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. |