Proovime näiteks lahendada sellist ülessannet:
Ärimees tahab lennata linnast A linna C. Kuna nende linnade vahel otseliini pole, tuleb tal linnas B ühelt lennukilt teisele ümber istuda. Ümberistumiseks kulub vähemalt 30 minutit. Kirjutada programm, mis liinide A − B ja B − C lennugraafikute põhjal leiab reisiplaani, mille ajakulu on vähim võimalik.
Lennuliinid on failis: lennud.txt :
Näiteks:
* Tallinn-London
10:10 11:50
13:10 14:50
16:40 18:20
* London-Boston
8:10 16:50
12:10 20:50
22:40 6:20
Vastuseks kirjutab programm ekraanile:
Tallinn-London
16:40 18:20
London-Boston
22:40 6:20
(Keerulisemaks läheb asi siis kui reis võib toimuda ka mitme järjestikuse päeva jooksul või võib mõni lennuk olla õhus keskööl. Kui saame käima versiooni, mis seda ei toeta, siis on pool tööd tehtud.)
Tegeleme selle ülesandega hiljem edasi. Seniks mõned tekstiga tehtavad funktsioonid, mida meil tarvis läheb:
.split(“:”) – oleme ilma parameetriteta varem ka kasutanud, siis teeb ta tekstijupi tükkideks tühikute kohtadelt. Kui aga kaasa anda parameeter, siis tehakse tekst tükkideks just selle märgi kohalt. Selles ülesandes tuleb linnade nimed üksteisest eraldada kriipsu “-” kohalt ja minutid ja tunnid eraldada kooloni “:” abil.
find(“*”) otsib teksti hulgast soovitud märki või märgijada. Kui find selle leiab, siis vastuseks saab positiivse numbri, mis vastab märgi positsioonile tekstis. Näiteks rea “* Tallinn-London” kohta vastab find(“*”) 0, sest * on kõige esimesel ehk nö nullpositsioonil. Kui * ei leita, siis saab vastuseks -1.
Kasulikud võimalused on ka teksti kirjasuuruse muutmiseks:
.strip() eemaldab parameetrita tavaliselt tühikud teksti algusest ja lõpust, aga parameetriks võib panna ka muud märgid, mida algusest ja lõpust eemaldada
.replace(“:”, “-“) vahetab teksti keskel asuva märgi millegi muu vastu, näiteks kooloni kriipsuga.
.lower() – see tekst ainult väiketähtedega (suurtähed tehtud väiketähtedeks)
.upper() – tekst ainult suurtähtedega
.swapcase() – vahetatud suur- ja väiketähed
.title() – esimene suurtäht, teised väiksed