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 | ! |
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:
{PYTHON}
print("a" < "b")
print("b" < "a")
print("c" == "c")
print("ab" >= "a")
print("e" <= "df")
print("java" == "javascript")
print("python" != "php")
{/PYTHON}
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ý znaknázev_seznamu [m:n]
- vyberie znaky v rozsahum
ažn-1
název_seznamu [m:n:i]
- vyberiem
a každýi
-Ty znak don-1
Samozrejme je možné využiť aj špeciality ako [:]
- vyberie
celý reťazec, alebo [::-1]
- prevráti reťazec.
Príklady:
{PYTHON}
retezec = "Honolulu"
print(retezec[0])
print(retezec[1:4])
print(retezec[::2])
{/PYTHON}
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.
{PYTHON}
retezec = "alabama"
print(retezec.count("a"))
print(retezec.count("a", 1, 4)) # to isté ako retezec[1:4].count("m")
{/PYTHON}
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.
{PYTHON}
retezec = "alabama"
print(retezec.endswith("a"))
print(retezec.endswith("m"))
{/PYTHON}
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.
{PYTHON}
retezec = "Wolfgang Amadeus Mozart"
print(retezec.find("Wolfgang"))
print(retezec.find("Beethoven"))
{/PYTHON}
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
.
{PYTHON}
prvni_retezec = "Airbus"
print(prvni_retezec.isalpha())
druhy_retezec = "Boeing 737"
print(druhy_retezec.isalpha())
{/PYTHON}
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
.
{PYTHON}
prvni_retezec = "123"
print(prvni_retezec.isdigit())
druhy_retezec = "boeing737"
print(druhy_retezec.isdigit())
{/PYTHON}
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
.
{PYTHON}
prvni_retezec = "arizona"
print(prvni_retezec.islower())
druhy_retezec = "AriZona"
print(druhy_retezec.islower())
{/PYTHON}
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
.
{PYTHON}
prvni_retezec = "ARIZONA"
print(prvni_retezec.isupper())
druhy_retezec = "arizona"
print(druhy_retezec.isupper())
{/PYTHON}
lower()
Prevedie znaky v reťazci na malé písmená.
{PYTHON}
prvni_retezec = "ARIZONA"
print(prvni_retezec.lower())
druhy_retezec = "PythoN"
print(druhy_retezec.lower())
{/PYTHON}
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ť.
{PYTHON}
retezec = "C-sharp je najlepší!"
print(retezec)
retezec = retezec.replace("C-sharp", "Python")
print(retezec)
{/PYTHON}
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.
{PYTHON}
retezec = "arizona"
print(retezec.startswith("a"))
print(retezec.startswith("m"))
{/PYTHON}
upper()
Prevedie znaky v reťazci na veľké písmená.
{PYTHON}
prvni_retezec = "arizona"
print(prvni_retezec.upper())
druhy_retezec = "PythoN"
print(druhy_retezec.upper())
{/PYTHON}
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:
{PYTHON}
prvni_retezec = "Python"
retezec = "{0} je najlepší!".format(prvni_retezec)
print(retezec)
{/PYTHON}
Poprípade možno aj písať:
{PYTHON}
prvni_retezec = "Python"
retezec = "{0} je najlepší!"
retezec = retezec.format(prvni_retezec)
print(retezec)
{/PYTHON}
{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:
{PYTHON}
prvni_retezec = "Python"
druhy_retezec = "najlepší"
retezec = "{0} je {1}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)
{/PYTHON}
Poradie možno aj meniť, pretože máme jednotlivé reťazca pekne očíslované:
{PYTHON}
prvni_retezec = "Python"
druhy_retezec = "Najlepší"
retezec = "{1} je {0}!"
retezec = retezec.format(prvni_retezec, druhy_retezec)
print(retezec)
{/PYTHON}
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 podmienkamiStiahnuté 71x (1.88 kB)