Pochopení podřetězců v Pythonu s příklady

Tento text si klade za cíl usnadnit studentům hlubší porozumění principům podřetězců v programovacím jazyce Python.

Seznámí vás s procesem tvorby podřetězců, jejich extrahování z různých částí řetězce a s tím, jak podřetězce v Pythonu fungují, a to vše s využitím praktických ukázek. Kromě toho se také podíváme na to, jak ověřit, zda se daný podřetězec v řetězci nachází.

Než začneme, je důležité ujasnit si, co přesně je řetězec a podřetězec. Řetězec je posloupnost znaků Unicode, která zahrnuje alfanumerické znaky a/nebo speciální symboly. Podřetězec je pak definován jako úsek této posloupnosti znaků uvnitř řetězce.

V tomto článku se zaměříme na:

  • Vytváření podřetězců.
  • Metody pro „krájení“ podřetězců.
  • Počet výskytů podřetězce v řetězci.
  • Zjišťování přítomnosti podřetězce v řetězci.

Začněme!

Tvorba podřetězce

Podřetězce se nejčastěji vytvářejí pomocí techniky zvané „krájení“. Tato metoda umožňuje extrahovat podřetězec definováním omezovačů: počátečního indexu, koncového indexu a kroku. Tyto omezovače slouží k vybrání přesného indexu znaků, které chceme získat.

Zápis syntaxe vypadá takto:

řetězec[počáteční-index: koncový-index: krok]

Je důležité si uvědomit, že indexování znaků v libovolném řetězci začíná od nuly.

Parametr počáteční-index určuje index prvního znaku podřetězce. Pokud tento prvek při krájení vynecháte, Python automaticky použije hodnotu nula jako výchozí.

Koncový-index udává index posledního znaku podřetězce. Pokud není zadán, krájení předpokládá, že jeho hodnota je rovna délce celého řetězce.

Krok: Udává, který další znak má být vybrán po aktuálním znaku. Běžně se používá hodnota 1. Pokud je parametr krok vynechán, Python implicitně používá hodnotu 1.

Metody krájení řetězců

Existuje několik způsobů, jakými můžeme získat podřetězec z daného řetězce. Mezi ně patří:

#1. Krájení s použitím počátečního i koncového indexu.

řetězec = řetězec[počáteční-index : koncový-index]

Příklad: Pokud chcete získat křestní jméno z celého jména osoby, implementujete to takto:

řetězec = 'Jan Novák'

print(řetězec[0:3])

Výsledkem bude:

Jan

#2. Krájení s použitím pouze počátečního indexu (bez koncového).

řetězec = řetězec[počáteční-index:]

V tomto případě uvedeme pouze index, od kterého má extrakce podřetězce začít – krájení bude pokračovat až do posledního indexu celého řetězce, který má obvykle index -1.

Příklad:

řetězec = 'Toto je ukázka krájení řetězce pomocí počátečního indexu bez koncového'

print(řetězec[10:])

Výstup:

ukázka krájení řetězce pomocí počátečního indexu bez koncového

#3. Krájení s použitím pouze koncového indexu (bez počátečního).

řetězec = řetězec[:koncový-index]

Zde specifikujeme poslední znak, který má podřetězec obsahovat, a vynecháváme počáteční bod. Krájení pak vytvoří podřetězec začínající znakem s indexem nula celého řetězce.

Příklad:

řetězec = 'Toto je ukázka krájení řetězce pomocí koncového indexu bez počátečního'

print(řetězec[:7])

Výstup:

Toto je

#4. Krájení celého řetězce.

řetězec = řetězec[ : ]

V tomto případě nedefinujeme žádné oddělovače, a proto bude vrácen celý původní řetězec.

Příklad:

řetězec = 'Toto je ukázka krájení celého řetězce'

print(řetězec[:])

Výstup:

Toto je ukázka krájení celého řetězce

#5. Extrakce jediného znaku z řetězce.

řetězec = řetězec[index]

Zde extrahujeme přesnou hodnotu indexu daného znaku v řetězci.

Příklad:

řetězec = 'Toto je ukázka extrahování jednoho znaku z řetězce'

print(řetězec[5])

Znak ‚j‘ v ‚je‘ bude vypsán, protože jeho indexová hodnota je 5.

#6. Krájení s použitím počátečního-indexu, koncového-indexu a kroku.

Příklad:

řetězec = 'Toto je ukázka krájení řetězce s použitím počátečního indexu, kroku a koncového indexu'

print(řetězec[10:25:1])

Pokud nastavíme hodnotu kroku na 1, dojde k běžnému krájení a výstup bude vypadat následovně:

ukázka krájení

Vezmeme stejný příklad a nastavíme hodnotu kroku na 2:

řetězec = 'Toto je ukázka krájení řetězce s použitím počátečního indexu, kroku a koncového indexu'

print(řetězec[10:25:2])

Krájení znaků se bude provádět po dvou krocích, takto:

uákakáěí

Krájení tedy vybere každý druhý znak. Proto výsledek krájení v Pythonu je ‚uákakáěí‘.

#7. Obrácení řetězce pomocí záporného kroku.

V tomto případě se zobrazí celý řetězec od posledního znaku k prvnímu.

řetězec = 'Toto je ukázka obrácení řetězce pomocí záporného kroku'

print(řetězec[::-1])

Výstup:

korku onégaz opmoc eězter řenícovro akázku ej otoT

Záporný krok funguje takto:

O
B
R
Á
C
E
N
Í
0
1
2
3
4
5
6
-6
-5
-4
-3
-2
-1


Počáteční hodnota indexu výše uvedeného obráceného řetězce začíná ve výchozím nastavení od 0 a končí na 6. Záporný krok obrátí hodnotu indexu posledního znaku a použije ji na první znak a tuto hodnotu neguje.

Další příklady krájení:

Získání prvních pěti znaků podřetězce v řetězci:

řetězec = 'pismenka'

print(řetězec[0:5])

Bude vypsáno:

pisme

Zjištění přítomnosti podřetězce v řetězci

Python používá k ověření existence podřetězce v řetězci buď funkci find() nebo operátor ‚in‘.

Příklad použití operátoru ‚in‘:

řetězec = 'toto je ukázka, že se v řetězci nachází konkrétní podřetězec'
if 'nalezen' in řetězec:
    print('Podřetězec byl nalezen')
else:
    print('Podřetězec nebyl nalezen')

Výstup:

Podřetězec nebyl nalezen

Výše uvedený příklad ověřuje, zda se v deklarovaném řetězci nachází podřetězec ‚nalezen‘. Protože tento podřetězec v řetězci není, je vypsán odpovídající výstup.

Pokud bychom nahradili podřetězec ‚nalezen‘ podřetězcem ‚že‘ a zkontrolovali bychom, zda se v řetězci nachází, vrátil by se výstup ‚Podřetězec byl nalezen‘, protože se v řetězci nachází.

Příklad použití funkce find():

řetězec = 'Použití řetězce k nalezení, zda se v řetězci nachází podřetězec'

if řetězec.find('nalezeno') != -1:
    print("Podřetězec 'nalezeno' existuje")
else:
    print("Podřetězec 'nalezeno' neexistuje")

Výstup:

Podřetězec 'nalezeno' neexistuje

V uvedeném příkladu jsme se pokusili najít podřetězec, který není součástí našeho řetězce. Jak je vidět, funkce find() prohledá celý řetězec, nenalezne konkrétní podřetězec „nalezeno“ a vrátí výstup „Podřetězec ‚nalezeno‘ neexistuje“.

Zjištění počtu výskytů podřetězce

Python používá pro splnění tohoto požadavku funkci count(), jak je ukázáno v níže uvedeném příkladu.

řetězec = " Počítání počtu výskytů písmene 'a' v tomto řetězci "

print("Počet výskytů podřetězce 'a' je: ",řetězec.count('a'))

Výstup:

Počet výskytů podřetězce 'a' je:  3

Závěr

Tento článek by vám měl poskytnout lepší pochopení podřetězců v jazyce Python, toho, jak je vytvářet, a jasně objasnil myšlenku krájení a jeho implementaci. Využijte uvedené příklady jako vodítko a procvičte si více případů, abyste si koncept lépe osvojili.

Můžete se také naučit, jak vytvořit hru na hádání čísel pomocí Pythonu nebo jak získat data JSON v Pythonu.

Příjemné kódování!