Doposud jsme pracovali převážně s čísly, která jsme si dokázali uložit do proměnných. Okrajově jsme se už setkali i s textovými informacemi – například když jsme příkazem canvas.create_text vykreslili text. Také při volbě náhodné barvy ze seznamu jsme si její název uložili do proměnné. V takovém případě jsme sice pracovali s barvou, ale počítač si ji pamatoval jako text – tedy jako řetězec znaků, kterému se v programování říká také textový řetězec nebo prostě řetězec.
S textovými řetězci jsme se setkali i při použití vstupního textového pole. Měli bychom tedy rozumět následujícímu programu:
# 19_1.py
import tkinter
canvas = tkinter.Canvas()
canvas.pack()
slovo1 = 'velké'
slovo2 = 'tajemství'
canvas.create_text(200, 100, text=slovo1)
canvas.create_text(200, 200, text=slovo2)
Program kreslí na obrazovku pod sebou dvě slova: "velké" a "tajemství". Může se nám zdát, že si je zatím pamatujeme v proměnných zbytečně. Textové řetězce můžeme také spojit pomocí operace +.
# 19_2.py
import tkinter
canvas = tkinter.Canvas()
canvas.pack()
slovo1 = 'velké'
slovo2 = 'tajemství'
spojene = slovo1 + slovo2
canvas.create_text(200, 100, text=spojene)
Už také víme, že nemusíme vše psát a kreslit pouze na plátno, ale můžeme také zapisovat informace příkazem print() v okně shellu (příkazový řádek).
# 19_3.py
import tkinter
canvas = tkinter.Canvas()
canvas.pack()
slovo1 = 'velké'
slovo2 = 'tajemství'
spojene = slovo1 + slovo2
print(spojene)
V tomto příkladu vidíme, že nepotřebujeme používat canvas a knihovnu tkinter. Bude fungovat i program, jako je tento:
slovo1 = 'velké'
slovo2 = 'tajemství'
spojene = slovo1 + slovo2
print(spojene)
Co se stane, když místo spojene = slovo1 + slovo2 v programu napíšeme následující: spojene = slovo2 + slovo1?
Jak byste změnili přidružený pravopis = slovo1 + slovo2, kdybyste chtěli mít mezeru mezi slovy?
Co se stane, když nahradíme třetí řádek v předchozím programu dalším záznamem?
a. spojene = slovo1 * 2
b. spojene = slovo1 + ' ' * 2 + slovo2
c. spojene = (slovo1 + ' ') * 2 + slovo2
Odhadněte, co udělá tento program:
# 19_4.py
from random import *
jake = choice(['velké','malé','obrovské','drobné','smutné','veselé'])
co = choice(['tajemství','překvapení','předsevzetí'])
spojene = jake + ' ' + co
print(spojene)
Můžeme také vytvořit funkci z předchozího programu a doplnit program tak, aby nám napsal několik náhodně složených vět.
# 19_5.py
from random import *
def nahodna_veta():
kdo = choice(['Kamarád','Spolužák','Pavel','Karel'])
delal = choice(['viděl', 'prozradil', 'řekl', 'napsal', 'zjistil', 'nakreslil'])
jake = choice(['velké', 'malé', 'obrovské', 'drobné', 'smutné', 'veselé'])
co = choice(['tajemství', 'překvapení', 'předsevzetí'])
spojene = kdo+' '+delal+' '+jake+' '+co+'.'
print(spojene)
for i in range(21):
nahodna_veta()
Když spustíme program, můžeme vidět podobné věty:
Karel řekl velké překvapení.
Kamarád řekl smutné překvapení.
Spolužák řekl drobné tajemství.
...
Kamarád řekl veselé překvapení.
Pavel zjistil velké překvapení.