IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

7. diel - Textové reťazce v Pythone - pokračovanie

V dnešnom tutoriále v nich budeme pokračovať. Naučíme sa ich porovnávanie, rezanie, formátovanie a ich metódy.

Reťazca

Porovnávanie

Reťazce sa dajú porovnávať pomocou štandardných porovnávacích operátorov:

operátor zápis
rovnosť ==
Je ostro väčšia >
Je ostro menšia <
Je väčšie alebo rovné > =
Je menšie alebo rovné <=
nerovnosť ! =
Všeobecná negácia !
Reťazce sa porovnávajú podľa abecedy. Presnejšie povedané tak, že sa vezmú postupne jednotlivé znaky porovnávaných reťazcov a porovnajú sa pomocou funkcie ord(). Teda "a" je menšie ako "b", pretože číselná hodnota "a" je 97 a číselná hodnota "b" je 98. (97 < 98).

Príklady:

print("a" < "b")
print("b" < "a")
print("c" == "c")
print("ab" >= "a")
print("e" <= "df")
print("java" == "javascript")
print("python" != "php")

Rezanie

Zo reťazcov možno "extrahovať" jednotlivé prvky rovnako ako zo zoznamov. Na tento účel sa používajú hranaté zátvorky.

Syntax je totožná, ako u zoznamov (reťazec môžeme teda chápať ako zoznam znakov):

  • název_seznamu [m] - vyberie jediný znak
  • název_seznamu [m:n] - vyberie znaky v rozsahu mn-1
  • název_seznamu [m:n:i] - vyberie m a každý i -Ty znak do n-1

Samozrejme je možné využiť aj špeciality ako [:] - vyberie celý reťazec, alebo [::-1] - prevráti reťazec.

Príklady:

retezec = "Honolulu"
print(retezec[0])
print(retezec[1:4])
print(retezec[::2])
Konzolová aplikácia
>>> retezec = "Honolulu"
>>> retezec[0]
H
>>> retezec[1:4]
ono
>>> retezec[::2]
hnll

Metódy

Reťazce na sebe majú mnoho užitočných metód. Vďaka nim možno reťazca jednoducho upravovať. Tu uvediem len niektoré z nich.

count()

Vráti počet podreťazcov v inom reťazci, parametrom je hľadaný podreťazec. Možno zadať aj výrez.

retezec = "alabama"
print(retezec.count("a"))
print(retezec.count("a", 1, 4)) # to isté ako retezec[1:4].count("m")

endswith()

Vráti boolean (True / False) či reťazec končí zadaným reťazcom, ktorý odovzdávame ako parameter. Možno zadať aj výrez.

retezec = "alabama"
print(retezec.endswith("a"))
print(retezec.endswith("m"))

find()

Vráti index najľavejšiu pozície podreťazca v inom reťazci. Hľadaný podreťazec odovzdávame ako parameter. Ak nie je nájdený, vráti -1. Možno zadať aj výrez.

retezec = "Wolfgang Amadeus Mozart"
print(retezec.find("Wolfgang"))
print(retezec.find("Beethoven"))

index()

Robí v podstate to isté ako metóda find(), avšak ak podreťazec nenájde, vyvolá výnimku.

isalpha()

Vráti boolean True, ak sú všetky znaky v reťazci písmenové znaky a reťazec obsahuje minimálne jeden znak. Inak vracia False.

prvni_retezec = "Airbus"
print(prvni_retezec.isalpha())
druhy_retezec = "Boeing 737"
print(druhy_retezec.isalpha())

isdigit()

Vráti boolean True, ak sú všetky znaky v reťazci číselné znaky (0 - 9) a reťazec obsahuje minimálne jeden znak. Inak vracia False.

prvni_retezec = "123"
print(prvni_retezec.isdigit())
druhy_retezec = "boeing737"
print(druhy_retezec.isdigit())

islower()

Vráti boolean True, ak sú všetky znaky v reťazci malé písmená a reťazec obsahuje minimálne jeden znak. Inak vracia False.

prvni_retezec = "arizona"
print(prvni_retezec.islower())
druhy_retezec = "AriZona"
print(druhy_retezec.islower())

isupper()

Vráti boolean True, ak sú všetky znaky v reťazci veľké písmená a reťazec obsahuje minimálne jeden znak. Inak vracia False.

prvni_retezec = "ARIZONA"
print(prvni_retezec.isupper())
druhy_retezec = "arizona"
print(druhy_retezec.isupper())

lower()

Prevedie znaky v reťazci na malé písmená.

prvni_retezec = "ARIZONA"
print(prvni_retezec.lower())
druhy_retezec = "PythoN"
print(druhy_retezec.lower())

replace()

Nahradí v reťazci podreťazec iným podreťazcom a vráti výsledok ako nový reťazec. Parametre metódy sú hľadaný podreťazec a podreťazec, ktorým ho chceme nahradiť.

retezec = "C-sharp je najlepší!"
print(retezec)
retezec = retezec.replace("C-sharp", "Python")
print(retezec)

startswith()

Vráti boolean (True / False) či reťazec začína zadaným podreťazcom, ktorý odovzdáme ako parameter. Možno zadať aj výrez.

retezec = "arizona"
print(retezec.startswith("a"))
print(retezec.startswith("m"))

upper()

Prevedie znaky v reťazci na veľké písmená.

prvni_retezec = "arizona"
print(prvni_retezec.upper())
druhy_retezec = "PythoN"
print(druhy_retezec.upper())

Formátovanie

Formátovanie textu nám umožňuje vkladať do neho jednoducho premennej pomocou zástupných znakov. Docielime tak prehľadnejšieho kódu, než keby sme reťazec nastavovali.

Formátovať text možno pomocou metódy format(), alebo pomocou %. Avšak formátovanie pomocou % je zastarané, takže sa ho učiť nebudeme. Toto formátovanie textu je v Pythone 3 len o uľahčenie prechodu od Pythone 2 na Python 3. V ďalších verziách už zrejme nebude.

Formátovanie prebieha tak, že ako argumenty dáme do metódy jednotlivé reťazca, alebo odkazy na reťazca. Prvý argument má index 0, ďalší má index 1, atď.

Príklad:

prvni_retezec = "Python"
retezec = "{0} je najlepší!".format(prvni_retezec)
print(retezec)

Poprípade možno aj písať:

prvni_retezec = "Python"
retezec = "{0} je najlepší!"
retezec = retezec.format(prvni_retezec)
print(retezec)

{0} nám zastupuje podreťazec, ktorý sa na toto miesto vloží z argumentu metódy. 0 je index argumentu, teda prvý. Túto časť reťazca možno meniť. Ostatné časti meniť nedá.

Viac argumentov vložíme nasledujúcim spôsobom:

prvni_retezec = "Python"
druhy_retezec = "najlepší"
retezec = "{0} je {1}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)

Poradie možno aj meniť, pretože máme jednotlivé reťazca pekne očíslované:

prvni_retezec = "Python"
druhy_retezec = "Najlepší"
retezec = "{1} je {0}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)

Ešte väčšie prehĺbenie (v AJ): Ďalšie metódy môžete zistiť zadaním príkazu help(str) v pythonovské konzole. Ak máte záujem o pokročilejšie formátovanie - Odkaz na dokumentáciu Pythone

Tak a to je všetko k reťazcom.

V nasledujúcom cvičení, Riešené úlohy k 6. a 7. lekciu Pythone, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 71x (1.88 kB)

 

Predchádzajúci článok
Textové reťazce v Pythone
Všetky články v sekcii
Základné konštrukcie jazyka Python
Preskočiť článok
(neodporúčame)
Riešené úlohy k 6. a 7. lekciu Pythone
Článok pre vás napísal gcx11
Avatar
Užívateľské hodnotenie:
8 hlasov
(^_^)
Aktivity