IPy povinne číta

Koktať sme si zakoktali, aj to bolo hádam pekné – ale nie je to o ničom? Aspoň dospeláci by možno oduli gamby, že to taká facina :-( No čo nás po kom, máme niekoho, kto nás počúva, občas aj poslúcha a to skoro ako bábiky, či psíky, či iné živé bytosti :-) Dá sa s nim hrať. Čary, máry, fik a zas je tu - IPythoník, stačí klik.

Keď sme sa tak minule zahrali, náš IPy bral od nás písmenká a čísla a čosi s nimi robil, asi tak, ako ho to naučili od narodenia. To množenie slovíčok bolo super, nie? No a možno ste si všimli, keď idete šípkou hore, či zas šípkou dole, že sa vám objavujú vaše predchádzajúce úlohy, čo ste IPythoníkovi dávali. Má to kdesi v pamäti a to pre každého z nás. Je to milé od neho, nie? A my ho, IPythoníka, volajme IPy, aspoň ja teda budem. Môže sa to hodiť, lebo: "IPy, IPy, čo si pipi???" a tak :-) Ale aj "IPysko", keď niečo vyvedie. :-(

A čo tak pomôcť nám, keby sme potrebovali stokrát napísať: "Nebudem strašiť deti IPythonom"? Lebo si to už pani učiteľka začína všímať, že tu čosi kujeme... No, povieme mu:

Trest="Nebudem strašiť deti IPythonom\n"

a teraz nech to tlačí - zatiaľ nemusí ani na papier :-) ale keď bude treba... máme myšku, či nie?

print 100*Trest

No, vidíte, čo vám vypísal, a v momente. Len mi nie je jasné, načo je tam to "\n". Čo, keď ho nedáme, ha? Aha, nebude to ono :-) Ale môžeme mu stokrát pohroziť:

print 100*"IPysko! "

a čo sa deje, vidíte sami, nebudem ja tu "kopy pásť" :-) Tak - čítať by IPy vedel, keď mu čosi predhodíme. Čo tak celú knižku? Povinné čítanie, IPy :-) Ja som z Oravy a tak Ti dáme čítať "Rysavú jalovicu" :-) od Maťa Bencúrovie. Kde ju nájsť? Ľahká pomoc v dobe Internetu. Aj my to dokážeme - po malom zagooglení našli sme, že kliknúť stačí tuto.

Ale čo IPy? Chudák klikať nedokáže, ktohovie, či aj videl v živote myšku, tú našu, plastovú :-) Takže som mu stiahol celú jalovicu tam, kde žije, aby ju mohol nájsť. Teraz ho vyskúšame. Jasne, že je to čosi, čo počitačovci nazývajú "súbor". Otvorí ho a prečíta???

T=open("jalovica.txt").read()

Čo myslíte, má to? :-) Na takého hadíka IPíka veru číta rýchlo - len či aj správne :-) Ale veď vieme, že stačí mu povedať, aby zaprintoval, čo má v T:

print T

No a asi sa nestačíte diviť - ako som sa veru aj ja. Vychrlil toho na nás požehnane. A napodiv, írečitou slovenčinou. Takže v T má celú poviedočku, zdá sa. Jej text, preto T som ju nazval, ale môžete ju volať, čojaviem Jalovica. Koľko asi je v poviedka čiarok? Koľkokrát sa tam spomína jalovica? A iné slová? Vedel by nám to IPy zrátať, keď už vlastní celý text? Počet je po anglicky count a tak skúsime:

T.count(",")

No - čo povedal vám? Mne, vraj je to 1597. Fíha, toľko čiarok. A ten, čo jalovičku kupoval bol Adam Krt, tak jeho meno je tam koľkokrát??

T.count('Adam')

Že vraj 42. Koľko je Krtov? To si zistite ľahko aj sami. :-) Viac, či menej, ako Adamov? No a koľkože to písmenok má celá poviedočka? Dĺžka, po anglicky length, tak skúsme (neberie to, vyskúšal som, ale berie skratku len :-)

len(T)

Ak je v dobrom rozmare, hádam aj vám IPy povie, čo mne - že 88409. Aleže sú to aj písmenká neviditeľné, ako napr. to "\n" čo sme už použili hore a ono je tam podľa IPy-ho 1190 krát. Takže koľko má riadkov tá poviedočka? :-) A ešte ako je to so slovami? Rozdeliť je split a teda skusme rozdeliť jalový text - hádam ho len nebude na písmenká, ale na slová deliť...

S=T.split()

A koľkože je slov? Či aj vám vyrátal 14370? A koľko by potom písmenok malo mať "priemerné" slovo? No, ako získame len prvých 10 slov? Čo tak

T[:10]

A koľko je slov, ktoré sa začínajú na "a"? Skúsime, nech ich najskôr vymenuje. Chceme zoznam všetkých slov, ktoré sa nachádzajú v S, ak ich prvé písmenko je "a":

[slovo for slovo in S if slovo[0]=='a']

Ufff, hlava nám ide kruhom :-) Ale "a" tu skutočne je vždy na začiatku... A koľko ich je, to je dĺžka toho ich zoznamu, teda:

len([slovo for slovo in S if slovo[0]=='a'])

Je to 826. A my si odpočinieme hádam. Nezabudnite, treba sa s IPym rozlúčiť cez jeho obľúbené Ctrl d :-)