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!")