Znakové reťazce sú iterovateľné, čo znamená, že ich môžeme prechádzať for cyklom:
for j in "Hello":
print(j * 2)
Výsledkom je:
HH
ee
ll
ll
oo
To isté platí aj pre cyklus while, odporúčam vložiť kód do idle, spustiť a sledovať kedy a čo sa vykoná v tomto cykle:
# ukážka v praxi, ako sa mi darí urobiť niečo zložito, obe časti kódu robia to isté, len zápis je iný
retazec = "Hello world"
pocet_znakov = len(retazec)
pomocna_premenna = 0
while pocet_znakov > 0:
print(pomocna_premenna, " ", retazec[(pocet_znakov) * -1])
pomocna_premenna +=1
pocet_znakov -= 1
# dokážeme to predsa jednoducho skrátiť
retazec = "Hello world"
pocet_znakov = 0
while pocet_znakov < len(retazec):
print(pocet_znakov, " ", retazec[pocet_znakov])
pocet_znakov += 1
0 H
1 e
2 l
3 l
4 o
5
6 w
7 o
8 r
9 l
10 d
# ak chceme to isté, s cyklom for a funkciou enumerate, ktorá vracia dvojicu znak a index
retazec = "Hello world"
for i, znak in enumerate(retazec):
print(i, " ", znak)
0 H
1 e
2 l
3 l
4 o
5
6 w
7 o
8 r
9 l
10 d
Odporúčam prejsť si jednotlivé funkcie a metódy, ktoré pomáhajú a zjednodušujú prácu s reťazcami.
Formátovanie reťazca
Možnosti formátovania pomocou formátovacích reťazcov f'{x}'
sme už videli predtým. Teraz ukážeme niekoľko užitočných formátovacích prvkov. Taktiež pri starších verziách pythonu je nutné použiť funkciu retazec.format().
x = 4500
y = 5
a = f'vysledok násobenia čísla: {x} číslom: {y} je {x * y}'
ahoj = 'hello'
b = f'ahoj po anglicky je "{ahoj}"'
print(a)
print(b)
vysledok násobenia čísla: 4500 číslom: 5 je 22500
ahoj po anglicky je "hello"
V zátvorkách '{}'
sa môžu nachádzať rôzne upresnenia formátovania, ktorými určujeme detaily, ako sa budú vypočítané hodnoty prevádzať na reťazce. Prvé číslo za :
váčšinou označuje šírku (počet znakov), do ktorej sa vloží reťazec a ďalej tam môžu byť znaky na zarovnanie ('<'
, '>'
, '^'
) a znaky na typ hodnoty ('d'
, 'f'
, …). Napríklad:
'{hodnota:10}'
– šírka výpisu 10 znakov'{hodnota:>7}'
– šírka 7, zarovnané vpravo'{hodnota:<5d}'
– šírka 5, zarovnané vľavo, parameter musí byť celé číslo (bude sa vypisovať v 10-ovej sústave)'{hodnota:12.4f}'
– šírka 12, parameter desatinné číslo vypisované na 4 desatinné miesta'{hodnota:06x}'
– šírka 6, zľava doplnená nulami, parameter celé číslo sa vypíše v 16-ovej sústave'{hodnota:^20s}'
– šírka 20, vycentrované, parametrom je reťazec
Zhrňme najpoužívanejšie písmená pri označovaní typu parametra:
d
– celé číslo v desiatkovej sústaveb
– celé číslo v dvojkovej sústavex
– celé číslo v šestnástkovej sústaves
– znakový reťazecf
– desatinné číslo (možno špecifikovať počet desatinných miest, inak default 6)g
– desatinné číslo vo všeobecnom formáte
text = "Hello World"
a = f'X{text:^20s}X'
print(a)
X Hello World X