Nauč se Python > Kurzy > Hadí workshop pro PyLadies > Úvod do Pythonu > Řetězce

Řetězce #

Čísla jsou pro počítače dost užitečná (ostatně slovo počítač to naznačuje), ale Python umí pracovat i s jinými druhy informací. Třeba s textem.

Zkus si to: zadej své jméno do uvozovek, jak vidíš níže:

>>> 'Ola'
'Ola'

Nyní jsi vytvořila svůj první řetězec! Řetězec (angl. string) je programátorský termín pro text – posloupnost znaků (písmenek), které mohou být zpracovány počítačem.

Když řetězec zadáváš, musíš ho vždy uzavřít do uvozovek (apostrofů). Jinak by Python nepoznal, co je text se kterým má pracovat a co jsou instrukce které má provést. To je pro počítač docela důležité – lidem podobné věci dojdou z kontextu, ale počítač je hloupé zařízení.

(Ilustrační komiks. Člověk říká robotovi: "Řekni Pavlovi, ať mi zavolá!". Robot odpoví: "PAVLOVI AŤ MI ZAVOLÁ!")

Řetězce se dají spojovat – „sečítat“ – pomocí +. Zkus toto:

>>> 'Já jsem ' + 'Ola'
'Já jsem Ola'

Pozor na mezeru! Když zadáš 'Já jsem' + 'Ola', spojí se ti dvě slova dohromady. Počítač považuje i mezeru za znak; chová se k ní stejně jako k jakémukoli písmenku. Když nedáš mezeru do uvozovek, nebude součástí řetězce.

Mezery mezi řetězcem a operátorem (+) naopak nehrají roli. Všechny následující příkazy dělají to samé:

>>> 'Já jsem ' + 'Ola'
'Já jsem Ola'
>>> 'Já jsem '+'Ola'
'Já jsem Ola'
>>> 'Já jsem '                +     'Ola'
'Já jsem Ola'

Je ale zvykem psát kolem operátoru jednu mezeru z každé strany – tak jako v těchto materiálech. Kód je pak čitelnější.

Zkus si dát do uvozovek i mezeru samotnou – sečti tři řetězce:

>>> 'Já jsem' + ' ' + 'Ola'
'Já jsem Ola'

Kromě „sečítání“ můžeš řetězce i opakovat – násobit číslem:

>>> 'Ola' * 3
'OlaOlaOla'

Uvozování #

A co když budeš chtít dát dovnitř do svého řetězce apostrof? Můžeš kolem řetězce použít dvojité uvozovky:

>>> "To bych řek', že jsou pořádně praštěný!"
"To bych řek', že jsou pořádně praštěný!"

Pythonu je jedno, se kterým druhem uvozovek řetězec zadáš. Podstatná jsou jen písmenka uvnitř. Když Python řetězec vypisuje, může si vybrat jiný druh uvozovek než jsi použila ty:

>>> "Ola"
'Ola'

Funkce a metody #

Už umíš řetězce „sčítat“ ('Ahoj ' + 'Olo!') a „násobit“ ('la' * 3). Na všechny ostatní věci, které se s textem dají dělat, ale na klávesnici není dost symbolů. Proto jsou některé operace pojmenované slovně – třeba takzvané funkce.

Chceš-li znát počet písmen ve svém jméně, zavolej funkci len. Napiš len (bez uvozovek), pak kulaté závorky, a do těch závorek své jméno jako řetězec (v uvozovkách). Tím funkci len zavoláš na řetězec se svým jménem:

>>> len('Ola')
3

Existuje funkce type, která zjistí jestli je něco číslo nebo řetězec. Jak bys ji zavolala na číslo 123 nebo řetězec 'abc'?

Řešení

Kromě funkcí existují metody, které se zapisují trochu jinak.

Chceš-li vidět své jméno velkými písmeny, zavolej metodu upper. Napiš řetězec, pak tečku, jméno metody upper (bez uvozovek) a prázdné závorky:

>>> 'Ola'.upper()
'OLA'

Řetězce mají i metodu lower. Zkus ji zavolat na své jméno.

Řešení

Co je metoda (kterou voláš s tečkou, jako 'Ola'.upper()) a co je funkce (kde vložíš informaci do závorek jako len('Ola')), to si budeš muset u každé nové funkce/metody zapamatovat nebo vyhledat.

Skládání výrazů #

Volání funkce nebo metody můžeš použít jako jinou hodnotu.

Nech Python spočítat matematický výraz (1 + 3) / 2:

>>> 8 / (1 + 3)
2.0

Python napřed sečte 1 + 3 a vyjde mu 4. Čtverku doplní místo 1 + 3 do původního příkladu, a dostane 8 / 4. To vydělí a dostane 2.0.

Neboli: 8 / (1 + 3) = 8 / 4 = 2.0

Zkus se zamyslet, jak Python zpracuje tyto výrazy:

>>> len('Ola') + 1
4
>>> 'Já jsem ' + 'Ola'.upper()
'Já jsem OLA'
>>> len('Ola' * 3)
9
>>> len('Ola'.upper())
3

Řešení

Podobné skládání je v programování velice časté. Většinu základních stavebních bloků se začátečník naučí za pár týdnů či měsíců – a pak po celou svou progrmátorskou kariéru objevuje nové způsoby, jak je poskládat do složitějších a složitějších konstrukcí.

Shrnutí #

OK, dost bylo řetězců. Co ses zatím naučila:

  • Řetězce se používají na práci s textem.
  • Operátory + a * se používají na spojování a opakování řetězců.
  • Funkce a metody jako len() a upper() provádí na řetězcích nějaké akce.
  • Výrazy se dají skládat dohromady.

Čísla, řetězce a operátory a funkce jsou základy většiny programovacích jazyků.

Připravena na něco dalšího? Vsadíme se, že ano!


Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.