Teisipäev, 20. märts 2018

Python - sissejuhatus

Programmeerimiskeele Python esimene versioon loodi Guido van Rossum'i poolt 1989. aastal, tegemist on suhteliselt lihtsa kõrgtasemel programmeerimiskeelega. Nime on keel saanud inglise koomikutegrupi Monty Python järgi.

Pythoni keele tundmaõppimiseks kasutamine keskkonda Thonny (ikoon on arvuti töölaual).
Thonny saab kodus harjutamiseks alla laadida siit: http://thonny.cs.ut.ee/

Igas keeles on programmi kirjapanekuks omad reeglid. Järgmisena vaatama reegleid, mis kehtivad Pythoni keeles.

Kui me tahame ekraanil midagi kuvada, siis on selleks käskluseks print.
Kirjuta Thonny ülemisse aknasse print ("Tere kevad!") ja vajuta nuppu "run" või klaviatuuril nuppu F5 (roheline nooleke töölaua kohal).

Millegi ekraanile kuvamiseks kasutatakse Pythonis sõna print ja kuvatav tekst pannakse sulgudesse ning jutumärkidesse.

- kustuta jutumärgid ära ja käivita programm uuesti. Mida märkad?

Juhul kui programmis on mingi viga, siis annab sellest teada sõna "error". Praegusel juhul tähendab "syntax error" seda, et viga on just keeles.

Teksti kuvamiseks tuleb see kirjutada jutumärkidesse!

Muutuja - mälupiirkond andmete salvestamiseks. Nende andmetega saab arvuti muutuja kaudu edasi toimetada.

Muutujal on oma nimi (NB! nimeks ei saa olla mõni Phytonis reserveeritud käsklus, näiteks print) ja talle väärtuse andmiseks kasutatakse võrdusmärki (=)

Näiteks
a = 1 (muutuja nimega a väärtuseks on arv 1)
nimi = "Vilve" (muutuja nimi väärtuseks on tekst "Vilve")

print(a) kuvab ekraanil numbri 1
print(nimi) kuvab ekraanil nime

Mida kuvab ekraanil käsk print(nimi, a)?

Mida kuvab ekraanil käsk print(nimi + a)?

Ilmselt saite viimast käsku proovides teate TypeError. See tähendab, et viga on andmete tüübis. Meil on praegu kasutusel 2 andmetüüpi - täisarvud ja sõned (tekst). + märki kasutades saab omavahel kokku liita arve või sõnesid, aga sõnesid ja arve omavahel liita ei saa.

Lisaks täisarvudele ja sõnedele on Pythonis kasutusel veel sellised andmetüübid, nagu
ujukomaarvud (1.3, 3.14 - koma asemel kirjutatakse Pythonis punkt)
tõeväärtused (True või False ehk tõene või väär).

Arvude sõneks teisendamiseks kasutatakse str(a) ja sõnede arvudeks teisendamisel int(a) käsklusi (loomulikult ei saa inimese nime selle käsuga numbriks teisendad, aga kui küsime kasutajalt numbri sisestamist, siis võetakse seda sisestatud numbrit kui teksti ning see vajab teisendamist).

Kuidas kuvada ekraanil teksti "Minu nimi on (nimi)"?

Praegu me kirjutame ise programmi muutuja sisse, aga võimalus on seda ka kasutajalt küsida. Kasutaja vastuse saame muutujasse sisestada käsuga input.

nimi = input("Sisesta nimi: ")

input sõna järel sulgudes olev tekst kuvatakse programmi kasutajale tekstina. NB! Kui soovid, et nime ja kooloni vahele jääks tühik, siis sisesta see tühik jutumärkide sisse.


Ülesanne 1

Koosta programm, mis küsib kasutajalt nime ning lemmikvärvi ja kuvab vastuseks teksti:

Tere, nimi! Sinu lemmikvärv on värv!


Muutujatega saab teha ka tehteid.

a=1
b=2
kokku=a+b
print(kokku)

Proovi nüüd järgmist programmi käivitada. Mis saad vastuseks?

a = input("Sisesta 1. arv: ")
b = input("Sisesta 2. arv: ")
kokku = a + b
print(kokku)

Kui me küsime vastaja käest arvu, siis võtab programm seda arvu kui teksti ning liitmistehte abil kirjutab lihtsalt arvud järjest, mitte ei liida!
Selleks, et programm sisestatud teksti (mis ju tegelikult ongi arv) arvuna võtaks, tuleb seda eraldi teada anda lühendiga int() ehk siis int(a) teisendab muutuja a arvuks ja int(b) vastavalt muutuja b arvuks.



Ülesanne 2

Tee ülalolevas programmis vajalikud parandused, et see väljastaks sisestatud arvude summa!


Ülesanne 3

Koostada programm, mille
1. real luuakse muutuja nimega aasta ning selle väärtuseks pane oma sünniaasta (arvuna);
2. real luuakse muutuja nimega eesnimi ning selle väärtuseks sisesta oma eesnimi (sõnena);
3. real luuakse muutuja nimega perenimi ning selle väärtuseks sisesta oma perekonnanimi (sõnena);
4. real luuakse muutuja kirje, mille väärtuse saamiseks ühendatakse muutujate eesnimi, perenimi ja aastaväärtused üheks sõneks. Väärtuste vahele pannakse tühikud;
5. real väljastatakse muutuja kirje väärtus ekraanile.

Täienda oma programmi nii, et sünniaasta, eesnime ja perekonnanime saaks sisestada kasutaja!


Tehted, mida on võimalik Pythonis arvudega teha

+ liitmine
- lahutamine
/ jagamine
* korrutamine
** astendamine
% jäägi leidmine
// täisosa leidmine



Ülesanne 4

Koostada programm, mis küsib kasutajalt astme aluse (täisarv) ja astendaja (täisarv) ning arvutab ja väljastab ekraanile astme.

Pühapäev, 4. märts 2018

Ekraanile joonistamise äpp

Ülesanne 1

Tee valmis äpp, mille abil saad sõrmega ekraanile joonistada. Lisa ka nupp "Puhasta", mis ekraani jälle puhtaks teeb.

Ülesanne 2

Lisa erinevaid värve (nupud), et joonistada saaks erineva värviga.

Juhised

Selleks, et ekraanile tekiks piirkond, kuhu saame sõrmega joonistada (mis reageeriks puudutusele), tuleb leida Palette alt valikust "Drawing and Animation" komponent nimega Canvas ja see töölauale lohistada.
Paremalt omaduste paneelist saab määrata Canvas välja suurust





Vasakul Properties paneelis saab määrata, milline meie joonistusala on.

Ekraanil saab erinevate objektide paigutust veikene ka sättida. Selleks on Palette menüüs sõna Layout all valikud:
TableArrangement - saab näiteks nuppe paigutada üksteise kõrvale ja alla (nagu tabelis read ja veerud).
VerticalArrangement - saab objekte üksteise alla paigutada
HorizontalArrangement - saab objekte üksteise kõrvale paigutada.

Selleks, et joonistusvälja kohal oleks nupud, millel klõpsates saaks joonistada erineva värviga, tuleb lohistada töölauale HorizontalArrangement komponent.  
Lisame HorizontalArrangement komponendi sisse 3 nuppu, mis oleksid erinevat värvi (kiri ei pea peal olema).
Kõige alla tuleks lisada veel nupp, millel vajutamine kustutab joonistuse (see nupp võib olla ka üleval värvinuppude kõrval).

Programmeerimine.

Lisaülesanne

Lisa oma äpile liugur, millega saab määrata joone jämedust.