Operácie s reťazcami

Zatiaľ ste videli, že print vie vypísať číslo alebo reťazec. Všetky výrazy (7-10, 5+2+7, atď.) obsahujúce základné matematické operácie sa totiž priamo vyhodnotia na číslo (-3, 14) a úlohou print je už len vypísať dané číslo. print vie ale toho samozrejme viac. Skopírujte si do vášho súboru s kódom nasledovný kód:

print("Python" + "tutorial!")
print(2 + 3)
print("2" + "3")

V prvom riadku vidíme, že podobne ako čísla aj reťazce vieme "sčítavať". Čo urobí znamienko plus v tomto prípade je, že zlepí reťazce za seba.

Ako je možné, že výsledok 2. a 3. riadku sa líši? Dôvodom je, že v prvom prípade ide o plus aplikované na čísla. V druhom prípade sme aplikovali plus na reťazce. Python vidí, že v 3. riadku sa naľavo aj napravo od plus nachádzajú čísla s úvodzovkami okolo, čím sme dali najavo, že chceme tieto čísla reprezentovať ako reťazce a Pythonu teda neostáva nič iné, ako použiť plus pre reťazce. Keď sa pokúsime tieto dve reprezentácie skombinovať a napíšeme

print(2 + "3")
# Chyba! 
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
# Tento program po spusteni skonci chybou vyssie. Python nam v tejto
# chybe hovori, ze operator + nemozno pouzit medzi typmi 'int' a 'str'.

tak spôsobíme chybu. Je to z dôvodu, že Python nerozumie ako má sčítať int, teda integer (celé číslo) a str, teda string (reťazec). Toto neplatí, ak plus nahradíme znamienkom krát. Tak schválne, čo vypíše program?

print(2 * "Ahoj!")