{"id":814,"date":"2025-06-04T13:09:33","date_gmt":"2025-06-04T11:09:33","guid":{"rendered":"https:\/\/rocketleaugedaddy.wordpress.com\/?page_id=814"},"modified":"2025-06-04T13:09:33","modified_gmt":"2025-06-04T11:09:33","slug":"konspekt-2","status":"publish","type":"page","link":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/","title":{"rendered":"Konspekt"},"content":{"rendered":"\n<p><br><strong>Andmet\u00fc\u00fcbid<br><\/strong>Int \u2014 t\u00e4isarv 3,4,5,0,-100<br>Str \u2014 s\u00f5ne \u00abema\u00bb \u00ab32323\u00bb \u00aba\u00bb<br>Bool \u2014 t\u00f5ev\u00e4\u00e4rtused True 1 False 0<br>Float \u2014 ujukomaarvud 5.45 -48.125<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Programmeerimise ajalugu, S\u00fcntaks, Muutujad<\/strong><\/h2>\n\n\n\n<p>Programmeerimine algas mehaaniliste masinatega ja arenes edasi k\u00f5rgkeelteks nagu Python. S\u00fcntaks on reeglistik, mille j\u00e4rgi kirjutatakse kood. Muutujad on \u201ekastid\u201c, kuhu saab andmeid salvestada.<br>Esialgu kirjutati programmide juhised otse masinkoodis, kuid hiljem loodi lihtsustamiseks k\u00f5rgema taseme keeled nagu Fortran, C ja Python. T\u00e4nap\u00e4eval kasutatakse programmeerimist laialdaselt igas eluvaldkonnas \u2013 alates \u00e4ppidest kuni tehisintellektini. Programmeerimine p\u00f5hineb loogikal, t\u00e4psusel ja loovusel.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nnimi = &quot;Anna&quot;\nvanus = 25\n<\/pre><\/div>\n\n\n<p><code>nimi = \"Anna\"<\/code> \u2013 see on <strong>muutuja<\/strong>, mis salvestab nime (s\u00f5ne).<br><code>vanus = 25<\/code> \u2013 <strong>t\u00e4isarvuline muutuja<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Lineaarsed programmid<\/strong><\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nnimi=input(&quot;Palun sisesta oma nimi ja vajuta ENTER: &quot;)\nprint(&quot;Tere, &quot; + nimi + &quot;!&quot;)\n<\/pre><\/div>\n\n\n<p>input &#8211; v\u00f5imaldab kasutajal midagi sisestada ning edastab saadud teksti Pythonile;<br><code>print()<\/code> \u2013 <strong>funktsioon<\/strong>, mis kuvab teksti ekraanile.<br><code>+<\/code> \u2013 kasutatakse siin <strong>s\u00f5nede \u00fchendamiseks<\/strong> (konkatenatsioon).<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Teema Valikud (If elif else)<\/h2>\n\n\n\n<p>Tingimuslikud harud, mis muudavad programmi k\u00e4itumist. Valib, mida millise tingimuse korral rakendada<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvanus = 18\nif vanus &amp;gt;= 18:\n    print(&quot;T\u00e4iskasvanu&quot;)\nelif vanus &amp;gt;= 13:\n    print(&quot;Teismeline&quot;)\nelse:\n    print(&quot;Laps&quot;)\n<\/pre><\/div>\n\n\n<p>Muutuv vanus on 18 aastat.<br>Kui vanus on suurem v\u00f5i v\u00f5rdne 18 aastaga, olete t\u00e4iskasvanu.<br>Kui vanus on suurem v\u00f5i v\u00f5rdne 13 aastaga, olete teismeline.<br>Kui v\u00e4\u00e4rtus on v\u00e4iksem, olete laps.<\/p>\n\n\n\n<p><strong>Kasutusjuhendi if struktuur:<\/strong><\/p>\n\n\n\n<p>if tingimus : operaatorid_1<br>j\u00e4rgmised operaatorid<br>v\u00f5i<br>kui tingimus :<br>operaatorid_1<br>j\u00e4rgmised operaatorid<\/p>\n\n\n\n<p><strong>If ja else operaatori struktuur:<\/strong><\/p>\n\n\n\n<p>if tingimus :<br>operaatorid_1<br>else :<br>operaatorid_2<br>j\u00e4rgmised operaatorid<\/p>\n\n\n\n<p><strong>If \u2026 elif\u2026else operaatori struktuur:<\/strong><\/p>\n\n\n\n<p>if condition_1 :<br>operaatorid_1<br>elif tingimus_2:<br>operaatorid_2<br>elif \u2026<br>\u2026<br>else :<br>operators_n<br>j\u00e4rgmised operaatorid<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kordused<\/h2>\n\n\n\n<p>Kordused t\u00e4idavad koodi mitu korda.<\/p>\n\n\n\n<p>while tingimus<br>on t\u00e4idetud<br>niikaua kui tingimus on t\u00f5ene.<\/p>\n\n\n\n<p>kui True:<br>l\u00f5putu ts\u00fckkel<br>Alternatiivina v\u00f5ib true asemel kasutada<br>kasutada lihtsat<br>equals, 1 == 1<\/p>\n\n\n\n<p>formuutuja on<br>m\u00e4\u00e4ratakse \u00fckshaaval<br>k\u00f5ik v\u00e4\u00e4rtused nimekirjast.<br>muutuja jaoks reas:<br>operaatorid<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/05\/image.png?w=1024\" alt=\"\" class=\"wp-image-1082\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nfor i in range(5):\n    print(i)\n \nx = 0\nwhile x &amp;lt; 5:\n    print(x)\n    x += 1\n<\/pre><\/div>\n\n\n<p>on for-silmus, mis kordub 5 korda.<br>range(5) loob numbrite jada: 0, 1, 2, 3, 4.<br>muutuja x = 0<br>while x &lt; 5 \u2014 while-ts\u00fckkel j\u00e4tkab t\u00e4itmist seni,kuni x on v\u00e4iksem kui 5.<br>print(x) v\u00e4ljastab x-i praeguse v\u00e4\u00e4rtuse.<br>x += 1 suurendab x-i v\u00e4\u00e4rtust 1 v\u00f5rra igal iteratsioonil (vastab x=x+ 1).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Listid<\/h2>\n\n\n\n<p>Nimekirjad on suvalist t\u00fc\u00fcpi objektide j\u00e4rjestatud ja muudetavad kogumid. Nimekiri v\u00f5ib<br>sisaldada \u00fcksk\u00f5ik kui palju \u00fcksk\u00f5ik milliseid objekte (sealhulgas sisendatud nimekirju) v\u00f5i ei sisalda midagi.<br>mitte midagi. Indekseerimine algab 0-st.<br>Nimekirjade kasutamiseks tuleb need luua.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nnimed = &#x5B;&quot;Marek&quot;, &quot;Maksim&quot;, &quot;Ilia&quot;]\nprint(nimed&#x5B;0])  \nnimed.append(&quot;Robert&quot;)\n<\/pre><\/div>\n\n\n<p>Nimekiri, mis salvestab kolm nime.<br>print ( kuvada ) nimi 0 kohale. See on Marek. 0,1,2<br>Uue nime lisamine nimede loendisse ( append ) Robert<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/rocketleaugedaddy.wordpress.com\/wp-content\/uploads\/2025\/06\/image-14.png?w=1024\" alt=\"\" class=\"wp-image-824\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Kasutajate funktsioonid<\/strong><\/h2>\n\n\n\n<p>Pythoni funktsioon on objekt, mis v\u00f5tab vastu argumente ja tagastab v\u00e4\u00e4rtuse(d)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/06\/image.png?w=1024\" alt=\"\" class=\"wp-image-1090\" \/><\/figure>\n\n\n\n<p>NB! Funktsioon ei tohi l\u00f5ppeda return-operaatoriga, sellisel juhul tagastab funktsioon v\u00e4\u00e4rtuse None.<br>Funktsioon v\u00f5ib olla mis tahes keerukusega ja tagastada mis tahes objekte (loendeid, tupleid ja isegi funktsioone!).<br>funktsioonid!)<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndef tervita(nimi):\n    print(f&quot;Tere, {nimi}!&quot;)\ntervita(&quot;Marek&quot;)\n<\/pre><\/div>\n\n\n<p>def \u2014 v\u00f5tmes\u00f5na, mida kasutatakse funktsiooni deklareerimiseks.<\/p>\n\n\n\n<p>tervita(nimi) \u2014 loob funktsiooni nimega tervita, millel on \u00fcks parameeter: nimi.<\/p>\n\n\n\n<p>print(f \u201eTere, {nimi}!\u201c) \u2014 vormistatud string. Selle stringi t\u00e4itmisel asendatakse \u00fcleantud nimi sellega.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00f5nastikud<\/h2>\n\n\n\n<p>S\u00f5nastik (dictionary) on v\u00f5tmep\u00f5hine andmestruktuur, mis v\u00f5imaldab salvestada ja hallata<br>andmepaaride kogumit kujul v\u00f5ti: v\u00e4\u00e4rtus.<\/p>\n\n\n\n<p><strong>Loomine:<br><\/strong>#T\u00fchja s\u00f5nastiku loomine<br>andmed = {}<br>#V\u00f5tmete ja v\u00e4\u00e4rtustega<br>andmed = {\u2018nimi\u2019: \u2018Mari\u2019, \u2018vanus\u2019: 25, \u2018keel\u2019: \u2018eesti\u2019}<br>#dict() funktsiooniga<br>andmed = dict(nimi=\u2019Mari\u2019, vanus=25, keel=\u2019eesti\u2019)<\/p>\n\n\n\n<p><strong>V\u00e4\u00e4rtustele ligip\u00e4\u00e4s:<\/strong><br>print(andmed[\u2018nimi\u2019]) # Mari<br>#V\u00f5i kasutades get() \u2014 kui v\u00f5tit pole, ei tule viga<br>print(andmed.get(\u2018aadress\u2019, \u2018Ei ole m\u00e4\u00e4ratud\u2019)) # Ei ole m\u00e4\u00e4ratud<\/p>\n\n\n\n<p><strong>V\u00e4\u00e4rtuste muutmine ja lisamine:<\/strong><br>andmed[\u2018nimi\u2019] = \u2018Kati\u2019 # V\u00e4\u00e4rtuse muutmine<br>andmed[\u2019email\u2019] = \u2018kati@example.com\u2019 # Uue paari lisamine<br>print(andmed) # {\u2018nimi\u2019: \u2018Kati\u2019, \u2018vanus\u2019: 25, \u2018keel\u2019: \u2018eesti\u2019, \u2019email\u2019:<br>\u2018kati@example.com\u2019}<\/p>\n\n\n\n<p><strong>Elementide eemaldamine:<\/strong><br>del andmed[\u2018vanus\u2019] # Eemaldab v\u00f5tme ja v\u00e4\u00e4rtuse<br>andmed.pop(\u2018keel\u2019) # Eemaldab ja tagastab v\u00e4\u00e4rtuse<br>print(andmed) # {\u2018nimi\u2019: \u2018Kati\u2019, \u2019email\u2019: \u2018kati@example.com\u2019}<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Failidega t\u00f6\u00f6<\/h2>\n\n\n\n<p>Pythonis on v\u00f5imalik txt faile kiirelt ja efektiivselt kasutada, olgu siis selleks informatsiooni talletamine v\u00f5i<br>anal\u00fc\u00fcsimine. Esimese sammuna tuleb \u00f5ige txt fail avada, millega me tegelema hakkame.<br><strong>Faili avamine:<br><\/strong>f = open(\u2018file.txt\u2019, \u2018r\u2019) #open() meetod annab k\u00e4skluse programmil avada test.txt fail ning r m\u00e4\u00e4rab \u00e4ra,<br>et tegemist on read ehk faili lugemisega.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/rocketleaugedaddy.wordpress.com\/wp-content\/uploads\/2025\/06\/image-15.png?w=1024\" alt=\"\" class=\"wp-image-827\" \/><\/figure>\n\n\n\n<p><strong>Failist lugemine:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n#Tekst failist salvestame j\u00e4rjendisse\ndef Loe_failist(fail:str)-&amp;gt;list:\n f=open(fail,&#039;r&#039;,encoding=&quot;utf-8-sig&quot;)\n jarjend=&#x5B;]\n for rida in f:\n jarjend.append(rida.strip())\n f.close()\nreturn jarjend\n<\/pre><\/div>\n\n\n<p><strong>Salvestamine failisse:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n#J\u00e4rjendite elemendid salvestame failisse\ndef Kirjuta_failisse(fail:str,jarjend:list):\n f=open(fail,&#039;w&#039;,encoding=&quot;utf-8-sig&quot;)\n for line in jarjend:\n f.write(line+&#039;\\n&#039;)\n f.close()\n<\/pre><\/div>\n\n\n<p>file.read(n) loeb failist hulga n suuruses t\u00e4hti, kui n on t\u00fchi, siis loeb terve faili.<br>file.readline(n) loeb failist tekstirea, kuid sealt mitte rohkem kui n m\u00e4rki.<br>file.readlines(n) loeb failist n tekstirida.<\/p>\n\n\n\n<p><strong>Smtplib:<\/strong><br>Python sisaldab sisseehitatud mooduleid, mida saame kasutada e-kirjade saatmiseks. Selleks<br>on vaja kahte moodulit, mis on smtplib ja email.message.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport smtplib\nfrom email.message import EmailMessage\n<\/pre><\/div>\n\n\n<p><strong>Konfigureeri e-posti p\u00e4ise v\u00e4ljad:<\/strong><br>K\u00f5igepealt loome klassi EmailMessage() abil objekti, mis sisaldab k\u00f5iki e-kirja \u00fcksikasju.<br>#create an email message object<br>message = EmailMessage()<br>J\u00e4rgmisena saame lisada e-posti s\u00f5numi p\u00e4ise \u00fcksikasjad, et m\u00e4\u00e4rata teema, saatja aadress ja<br>vastuv\u00f5tja aadress, nagu allpool n\u00e4idatud.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nemail_subject = &quot;Email test from Python&quot;\nsender_email_address = &quot;your_email@gmail.com&quot;\nreceiver_email_address = &quot;receiver_email@address.com&quot;\n#configure email headers\nmessage&#x5B;&#039;Subject&#039;] = email_subject\nmessage&#x5B;&#039;From&#039;] = sender_email_address\nmessage&#x5B;&#039;To&#039;] = receiver_email_address\n<\/pre><\/div>\n\n\n<p><strong>Konfigureeri e-kirja keha:<\/strong><br>Selle n\u00e4ite puhul on s\u00f5numi sisu tavaline tekstis\u00f5num. E-kirja sisu m\u00e4\u00e4ratakse e-posti objekti<br>meetodi set_content() abil j\u00e4rgmiselt.<br>#set email body text<br>message.set_content(\u00abHello from Python!\u00bb)<\/p>\n\n\n\n<p><strong>Konfigureeri e-posti server:<\/strong><br>E-posti server on rakendus, mida kasutatakse e-kirjade saatmiseks ja saamiseks. Sellised<br>serverid kasutavad SMTP-protokolli, et saata e-kirju teistele serveritele.<br>Meie n\u00e4ites n\u00e4eme, et e-kiri saadetakse gmaili kontolt, seega peame kasutama serverina<br>smtp.gmail.com.<br>Teine seade, mida me peame oma SMTP-serveri jaoks konfigureerima, on meiliport. See on<br>v\u00f5rguport, mida meie python-kliendirakendus kasutab e-kirjade saatmiseks teisele serverile.<br>Me kasutame SMTP porti 587, mis on vaikimisi port, mida kasutatakse e-kirjade saatmise<br>k\u00e4sitlemiseks SMTP kaudu.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nemail_smtp = &quot;smtp.gmail.com&quot;\n#set smtp server and port\nserver = smtplib.SMTP(email_smtp, &#039;587&#039;)\n<\/pre><\/div>\n\n\n<p>P\u00e4rast serveri deklareerimist on meil vaja teha m\u00f5ned t\u00e4iendavad sammud, et luua \u00fchendus<br>SMTP-serveriga.<br>See h\u00f5lmab meie enda tuvastamist serverile, kasutades funktsiooni ehlo(), seej\u00e4rel turvalise<br>TLS-\u00fchenduse algatamist serveriga, kasutades funktsiooni starttls().<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nemail_smtp = &quot;smtp.gmail.com&quot;\n# set smtp server and port\nserver = smtplib.SMTP(email_smtp, &#039;587&#039;)\n# identify this client to the SMTP server\nserver.ehlo()\n# secure the SMTP connection\nserver.starttls()\n<\/pre><\/div>\n\n\n<p><strong>JSON:<\/strong><\/p>\n\n\n\n<p>JSON (JavaScript Object Notation) on lihtne andmevorming, mida kasutatakse:<br>Andmete salvestamiseks failides.<br>Andmete vahetamiseks programmide vahel.<br><strong>JSON-i sarnasused Pythoniga:<\/strong><br>Python dict = JSON objekt.<br>Python list = JSON massiiv.<br>Python True\/False = JSON true\/false.<br>Python None = JSON null.<\/p>\n\n\n\n<p><strong>JSON-i kasutamine Pythonis:<\/strong><\/p>\n\n\n\n<p><strong>Mooduli importimine:<br><\/strong>import json<\/p>\n\n\n\n<p><strong>Python andmestik \u2192 JSON string:<br><\/strong>andmed = {\u00abnimi\u00bb: \u00abAnna\u00bb, \u00abvanus\u00bb: 25, \u00ababielus\u00bb: False}<br>json_string = json.dumps(andmed)<br>print(json_string)<\/p>\n\n\n\n<p>Salvesta JSON faili:<br>with open(\u00abandmed.json\u00bb, \u00abw\u00bb) as f:<br>json.dump(andmed, f)<\/p>\n\n\n\n<p>Loe JSON failist:<br>with open(\u00abandmed.json\u00bb, \u00abr\u00bb) as f:<br>andmed_failist = json.load(f)<br>print(andmed_failist)<\/p>\n\n\n\n<p>Ilusam formaat:<br>print(json.dumps(andmed, indent=2, sort_keys=True))<\/p>\n\n\n\n<p>Keerulisemad andmestruktuurid:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nklass = {\n&quot;opetaja&quot;: &quot;Tamm&quot;,\n&quot;opilased&quot;: &#x5B;\n{&quot;nimi&quot;: &quot;Mari&quot;, &quot;hinne&quot;: 5},\n{&quot;nimi&quot;: &quot;J\u00fcri&quot;, &quot;hinne&quot;: 4}\n]\n}\nwith open(&quot;klass.json&quot;, &quot;w&quot;) as f:\njson.dump(klass, f, indent=2)\n<\/pre><\/div>\n\n\n<p><strong>Kokkuv\u00f5te:<br>JSON on Pythonis v\u00e4ga kasulik, et:<\/strong><\/p>\n\n\n\n<p>Salvestada p\u00fcsivaid andmeid.<br>Vahetada infot programmide vahel.<br>Teha oma projektid professionaalsemaks ja korrastatumaks!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Graafikute ja diagrammide loomine<\/strong><\/h2>\n\n\n\n<p><strong>Matplotlib \u2013 Graafikute loomine Pythonis<\/strong>:<\/p>\n\n\n\n<p>matplotlib on \u00fcks enimkasutatavaid visualiseerimisteeke Pythonis. Selle alamosa pyplot v\u00f5imaldab kiiresti graafikuid luua, sarnaselt MATLABi s\u00fcntaksile.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport matplotlib.pyplot as plt\n \nx = &#x5B;1, 2, 3, 4]\ny = &#x5B;1, 4, 9, 16]\n \nplt.plot(x, y)\nplt.title(&quot;Lihtne graafik&quot;)\nplt.xlabel(&quot;x telg&quot;)\nplt.ylabel(&quot;y telg&quot;)\nplt.show()\n<\/pre><\/div>\n\n\n<p><strong>P\u00f5hilised graafikuk\u00e4sud<\/strong>:<\/p>\n\n\n\n<p>Matplotlib v\u00f5imaldab joonistada mitmesuguseid diagramme:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>K\u00e4sk<\/th><th>Graafiku t\u00fc\u00fcp<\/th><\/tr><\/thead><tbody><tr><td><code>plot()<\/code><\/td><td>Joonjoon<\/td><\/tr><tr><td><code>scatter()<\/code><\/td><td>Hajuvusdiagramm<\/td><\/tr><tr><td><code>bar()<\/code><\/td><td>Tulpdiagramm<\/td><\/tr><tr><td><code>hist()<\/code><\/td><td>Histogramm<\/td><\/tr><tr><td><code>pie()<\/code><\/td><td>Sektordiagramm<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>T\u00e4his<\/th><th>Stiil<\/th><\/tr><\/thead><tbody><tr><td><code>'-'<\/code><\/td><td>T\u00e4isjoon<\/td><\/tr><tr><td><code>'--'<\/code><\/td><td>Katkendjoon<\/td><\/tr><tr><td><code>'-.'<\/code><\/td><td>Punkt-kriips<\/td><\/tr><tr><td><code>':'<\/code><\/td><td>Punktiir<\/td><\/tr><tr><td><code>''<\/code><\/td><td>Ainult markerid<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>T\u00e4his<\/th><th>Marker<\/th><\/tr><\/thead><tbody><tr><td><code>'.'<\/code><\/td><td>Punkt<\/td><\/tr><tr><td><code>'o'<\/code><\/td><td>Ring<\/td><\/tr><tr><td><code>'^'<\/code><\/td><td>Kolmnurk \u00fcles<\/td><\/tr><tr><td><code>'s'<\/code><\/td><td>Ruut<\/td><\/tr><tr><td><code>'*'<\/code><\/td><td>T\u00e4ht<\/td><\/tr><tr><td><code>'D'<\/code><\/td><td>Rombi<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Tekst \/ fondid ja v\u00e4rvid:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSaame graafikutele lisada tekste:\n \nplt.title(&quot;Graafiku pealkiri&quot;, fontsize=14, fontweight=&#039;bold&#039;)\nplt.xlabel(&quot;x telg&quot;, fontsize=12)\nplt.ylabel(&quot;y telg&quot;, fontsize=12)\nplt.text(2, 10, &quot;Tipp-punkt&quot;, fontsize=10, color=&#039;red&#039;)\n\n<\/pre><\/div>\n\n\n<p id=\"yui_3_17_2_1_1748793220983_1375\"><strong>Matplotlib toetab v\u00e4rvi esitamist:<\/strong><br>V\u00e4rvinimed:&nbsp;<code>'blue'<\/code>,&nbsp;<code>'green'<\/code>,&nbsp;<code>'red'<\/code><br>L\u00fchendid:&nbsp;<code>'b'<\/code>,&nbsp;<code>'g'<\/code>,&nbsp;<code>'r'<\/code><br>RGB heksakoodid:&nbsp;<code>'#FF5733'<\/code><br>Eelseadistatud paletid:&nbsp;<code>'viridis'<\/code>,&nbsp;<code>'plasma'<\/code>,&nbsp;<code>'inferno'<\/code>,&nbsp;<code>'cividis'<\/code><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nplt.plot(x, y, color=&#039;purple&#039;)\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Graafiline liides(Tkinter, CustomTkinter)<\/strong><\/h2>\n\n\n\n<p>Tkinter on Pythonisse sisseehitatud moodul, millega saab luua graafilisi aknaid, nuppe, sisestusv\u00e4lju ja palju muud. See p\u00f5hineb Tcl\/Tk teekidel ja on vaikimisi olemas k\u00f5igis Python\u2019i standardpaigaldustes.<\/p>\n\n\n\n<p><strong>P\u00f5hiprintsiibid<\/strong>:<\/p>\n\n\n\n<p><strong>Tkinter\u2019i kasutamine p\u00f5hineb j\u00e4rgmisel loogikal:<\/strong><\/p>\n\n\n\n<p>Loo p\u00f5hiaken (<code>Tk<\/code>)<br>Lisa sinna vidinad (nupud, sildid, sisestusv\u00e4ljad jne)<br>K\u00e4ivita s\u00fcndmuste ts\u00fckkel (<code>mainloop<\/code>)<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><\/li>\n<\/ol>\n\n\n\n<p><strong>Lihtne n\u00e4ide: P\u00f5histruktuur<\/strong>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport tkinter as tk\n \n# Loo p\u00f5hiaken\naken = tk.Tk()\naken.title(&quot;Minu esimene GUI&quot;)\naken.geometry(&quot;300x200&quot;)\n \n# Lisa tekstisilt\nsilt = tk.Label(aken, text=&quot;Tere, maailm!&quot;)\nsilt.pack()\n \n# K\u00e4ivita rakendus\naken.mainloop()\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Label<\/strong>&nbsp;\u2013 Tekstiv\u00e4li<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsilt =tk.Label(aken,text=&quot;See on tekst&quot;,fg=&quot;blue&quot;,font=(&quot;Arial&quot;,14))\nsilt.pack()\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Button<\/strong>&nbsp;\u2013 Nupp<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndef vajutati():\n    print(&quot;Nuppu vajutati!&quot;)\n \nnupp = tk.Button(aken, text=&quot;Vajuta mind&quot;, command=vajutati)\nnupp.pack()\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Entry<\/strong>&nbsp;\u2013 Sisestusv\u00e4li<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsisestus = tk.Entry(aken)\nsisestus.pack()\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Text<\/strong>&nbsp;\u2013 Mitmerealine tekstikast<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntekstikast = tk.Text(aken, height=5, width=30)\ntekstikast.pack()\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Checkbutton<\/strong>&nbsp;\u2013 M\u00e4rkeruut<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nvalik = tk.IntVar()\nm\u00e4rk = tk.Checkbutton(aken, text=&quot;Valik&quot;, variable=valik)\nm\u00e4rk.pack()\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>istbox \u2013 Valikuloend<\/strong><\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport tkinter as tkaken = tk.Tk()aken.title(&quot;Listbox n\u00e4ide&quot;)\n# Loendi loomine\nloend = tk.Listbox(aken)\nfor vili in &#x5B;&quot;\u00d5un&quot;, &quot;Banaan&quot;, &quot;Apelsin&quot;, &quot;Ploom&quot;]:\n    loend.insert(tk.END, vili)\nloend.pack()\n\n# Valiku n\u00e4itamine\ndef n\u00e4ita_valik():\n    try:\n        valitud = loend.get(loend.curselection())\n        silt.config(text=f&quot;Valisid: {valitud}&quot;)\n    except:\n        silt.config(text=&quot;Palun vali midagi!&quot;)\n\ntk.Button(aken, text=&quot;N\u00e4ita valikut&quot;, command=n\u00e4ita_valik).pack()\nsilt = tk.Label(aken)\nsilt.pack()\n\naken.mainloop()\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Paigutusmeetodid<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><code>pack()<\/code>&nbsp;\u2013 lihtne j\u00e4rjestus<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntk.Label(aken, text=&quot;\u00dcks&quot;).pack()\ntk.Button(aken, text=&quot;Kaks&quot;).pack()\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><code>grid()<\/code>&nbsp;\u2013 t\u00e4pne paigutus ridade ja veergudega<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntk.Label(aken, text=&quot;Eesnimi:&quot;).grid(row=0, column=0)\ntk.Entry(aken).grid(row=0, column=1)\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><code>place()<\/code>&nbsp;\u2013 paigutus x\/y koordinaatide j\u00e4rgi<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntk.Label(aken, text=&quot;K\u00e4sitsi paigutus&quot;).place(x=50, y=30)\n\n<\/pre><\/div>\n\n\n<p>\u26a0\ufe0f \u00c4ra kasuta&nbsp;<code>pack()<\/code>&nbsp;ja&nbsp;<code>grid()<\/code>\/<code>place()<\/code>&nbsp;<strong>samas konteineris<\/strong>!<\/p>\n\n\n\n<p><strong>CustomTkinter:<\/strong><\/p>\n\n\n\n<p>CustomTkinteril on sama rakendus kui tavalisel Tkinteril, kuid selle nuppude taustad ja ikoonid on ilusamad ja t\u00f5sisemad!<\/p>\n\n\n\n<p><strong>N\u00e4idis:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nimport customtkinter as ctk\n \n# Valikuline: tee tume v\u00f5i hele teema\nctk.set_appearance_mode(&quot;System&quot;)  # &quot;Dark&quot;, &quot;Light&quot;, &quot;System&quot;\nctk.set_default_color_theme(&quot;blue&quot;)  # v\u00f5i &quot;green&quot;, &quot;dark-blue&quot;\n \n# Aken\napp = ctk.CTk()\napp.title(&quot;CustomTkinter n\u00e4idis&quot;)\napp.geometry(&quot;400x300&quot;)\n \n# Silt\nlabel = ctk.CTkLabel(app, text=&quot;Tere tulemast!&quot;, font=(&quot;Arial&quot;, 20))\nlabel.pack(pady=20)\n \n# Sisend\nentry = ctk.CTkEntry(app, placeholder_text=&quot;Sisesta midagi...&quot;)\nentry.pack(pady=10)\n \n# Nupp\ndef nupp_vajutatud():\n    sisend = entry.get()\n    label.configure(text=f&quot;Tere, {sisend}!&quot;)\n \nbutton = ctk.CTkButton(app, text=&quot;Kinnita&quot;, command=nupp_vajutatud)\nbutton.pack(pady=10)\n \n# K\u00e4ivitamine\napp.mainloop()\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">OOP<\/h2>\n\n\n\n<p>Kuigi Python toetab mitut programmeerimise paradigmat, on neist k\u00f5ige enam r\u00f5hutatud just objektorienteeritud programmeerimise (OOP) paradigmat. V\u00f5ib \u00f6elda, et OOP-i kasutamine t\u00e4hendab programmikoodi teatud (kindlal) viisil organiseerimist. Selle l\u00e4henemise juures leiavad kasutamist m\u00f5isted nagu klass ja objekt, teemasse enam s\u00fcvenedes ka kapseldamine, pol\u00fcmorfism, p\u00e4rimine, modulaarsus, abstraktsioon. Viimaseid nimetatakse OOP tehnikateks.<\/p>\n\n\n\n<p><strong>Miks kasutada objektorienteeritud programmeerimist?:<\/strong><\/p>\n\n\n\n<p><strong>Objektorienteeritud programmeerimise plussid:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Programmi erinevateks osadeks jaotamine ja organiseeritus<\/li>\n\n\n\n<li>Vigade leidmine on kergem<\/li>\n\n\n\n<li>Korduvkasutus l\u00fchendab koodi pikkust<\/li>\n\n\n\n<li>Lihtsam teha koost\u00f6\u00f6d teiste koodikirjutajatega<\/li>\n<\/ul>\n\n\n\n<p><strong>Klassid:<\/strong><\/p>\n\n\n\n<p>Klass on kasutaja m\u00e4\u00e4ratletud andmestruktuur, mis seob andmeliikmed ja meetodid \u00fcheks \u00fcksuseks. Klass on&nbsp;<strong>objekti loomise plaan v\u00f5i koodimall.<\/strong>&nbsp;Klassi abil saate luua nii palju objekte kui soovite.&nbsp;<\/p>\n\n\n\n<ul id=\"yui_3_17_2_1_1748793220983_1541\" class=\"wp-block-list\">\n<li>Iga objekt kuulub mingisse&nbsp;<strong>klassi<\/strong>; ta on selle klassi&nbsp;<strong>isend&nbsp;<\/strong>(ingl.k.&nbsp;<em>instance<\/em>), n\u00e4iteks isend Miisu kuulub klassi \u00abkass\u00bb.<\/li>\n\n\n\n<li>Sama klassi isenditel on samad&nbsp;<strong>isendi muutujad&nbsp;<\/strong>(ingl.k.&nbsp;<em>instance variables<\/em>) ja&nbsp;<strong>isendi meetodid&nbsp;<\/strong>(ingl.k.&nbsp;<em>instance methods<\/em>), isendi muutujate v\u00e4\u00e4rtused (olek) on \u00fcldjuhul erinevad.<\/li>\n\n\n\n<li>Klass v\u00f5ib sisaldada ka muutujaid ja meetodeid, mis ei ole seotud isenditega, nn.&nbsp;<strong>klassi muutujad&nbsp;<\/strong>(ingl.k.&nbsp;<em>class variables<\/em>) ja&nbsp;<strong>klassi meetodid&nbsp;<\/strong>(ingl.k.&nbsp;<em>class methods<\/em>).&nbsp;Klassi muutujad on \u00fchised k\u00f5igile isenditele (tavaliselt konstandid, n\u00e4iteks kassi jalgade arv \u2014 4) ja neid saab kasutada nii klassi meetodites kui ka isendi meetodites. Klassi meetodeid kasutatakse vahel uute isendite loomise juures (isendiloome, ingl.k.&nbsp;<em>instantiation<\/em>), samuti on neist abi siis, kui me ei soovi meetodit objekti sisse kapseldada.<\/li>\n<\/ul>\n\n\n\n<p><strong>N\u00e4idis:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclass Opilane:\n    def __init__(self, nimi, vanus):\n        self.nimi = nimi\n        self.vanus = vanus\n \n    def tutvusta(self):\n        print(f&quot;Mina olen {self.nimi}, {self.vanus} aastat vana&quot;)\n \nmarek = Opilane(&quot;Marek&quot;, 20)\nmarek.tutvusta()\n<\/pre><\/div>\n\n\n<p><strong>class Opilane: \u2014&nbsp;<\/strong>loob uue klassi nimega Opilane.<br><strong>init \u2014&nbsp;<\/strong>on eriline meetod, mis k\u00e4ivitatakse, kui objekt luuakse. Ta saab parameetrid nimi ja vanus ning salvestab need objekti sisse.<br><strong>self.nimi = nimi ja self.vanus = vanus \u2014<\/strong>&nbsp;salvestavad andmed objekti omadustesse.<br><strong>def tutvusta(self): \u2014<\/strong>&nbsp;meetod, mis kuvab tekstina \u00f5pilase andmed.<br><strong>marek = Opilane(\u00abMarek\u00bb, 20) \u2014&nbsp;<\/strong>loob uue Opilane objekti nimega marek.<br><strong>marek.tutvusta() \u2014<\/strong>&nbsp;kutsub meetodi ja v\u00e4ljastab.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/Ubunter69\/class\">https:\/\/github.com\/Ubunter69\/class<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Andmet\u00fc\u00fcbidInt \u2014 t\u00e4isarv 3,4,5,0,-100Str \u2014 s\u00f5ne \u00abema\u00bb \u00ab32323\u00bb \u00aba\u00bbBool \u2014 t\u00f5ev\u00e4\u00e4rtused True 1 False 0Float \u2014 ujukomaarvud 5.45 -48.125 Programmeerimise ajalugu, S\u00fcntaks, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-814","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Konspekt - Marek Lukk portfoolio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/\" \/>\n<meta property=\"og:locale\" content=\"et_EE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konspekt - Marek Lukk portfoolio\" \/>\n<meta property=\"og:description\" content=\"Andmet\u00fc\u00fcbidInt \u2014 t\u00e4isarv 3,4,5,0,-100Str \u2014 s\u00f5ne \u00abema\u00bb \u00ab32323\u00bb \u00aba\u00bbBool \u2014 t\u00f5ev\u00e4\u00e4rtused True 1 False 0Float \u2014 ujukomaarvud 5.45 -48.125 Programmeerimise ajalugu, S\u00fcntaks, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Marek Lukk portfoolio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"11 minutit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/\",\"url\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/\",\"name\":\"Konspekt - Marek Lukk portfoolio\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image.png?w=1024\",\"datePublished\":\"2025-06-04T11:09:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/#breadcrumb\"},\"inLanguage\":\"et\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"et\",\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image.png?w=1024\",\"contentUrl\":\"https:\\\/\\\/mart1n2k.wordpress.com\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/image.png?w=1024\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/konspekt-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konspekt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/\",\"name\":\"Marek Lukk portfoolio\",\"description\":\"Noorem tarkvaraarendaja\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mareklukk24.thkit.ee\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"et\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Konspekt - Marek Lukk portfoolio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/","og_locale":"et_EE","og_type":"article","og_title":"Konspekt - Marek Lukk portfoolio","og_description":"Andmet\u00fc\u00fcbidInt \u2014 t\u00e4isarv 3,4,5,0,-100Str \u2014 s\u00f5ne \u00abema\u00bb \u00ab32323\u00bb \u00aba\u00bbBool \u2014 t\u00f5ev\u00e4\u00e4rtused True 1 False 0Float \u2014 ujukomaarvud 5.45 -48.125 Programmeerimise ajalugu, S\u00fcntaks, [&hellip;]","og_url":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/","og_site_name":"Marek Lukk portfoolio","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"11 minutit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/","url":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/","name":"Konspekt - Marek Lukk portfoolio","isPartOf":{"@id":"https:\/\/mareklukk24.thkit.ee\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/#primaryimage"},"image":{"@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/#primaryimage"},"thumbnailUrl":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/05\/image.png?w=1024","datePublished":"2025-06-04T11:09:33+00:00","breadcrumb":{"@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/#breadcrumb"},"inLanguage":"et","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/"]}]},{"@type":"ImageObject","inLanguage":"et","@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/#primaryimage","url":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/05\/image.png?w=1024","contentUrl":"https:\/\/mart1n2k.wordpress.com\/wp-content\/uploads\/2025\/05\/image.png?w=1024"},{"@type":"BreadcrumbList","@id":"https:\/\/mareklukk24.thkit.ee\/wp\/konspekt-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mareklukk24.thkit.ee\/wp\/"},{"@type":"ListItem","position":2,"name":"Konspekt"}]},{"@type":"WebSite","@id":"https:\/\/mareklukk24.thkit.ee\/wp\/#website","url":"https:\/\/mareklukk24.thkit.ee\/wp\/","name":"Marek Lukk portfoolio","description":"Noorem tarkvaraarendaja","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mareklukk24.thkit.ee\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"et"}]}},"_links":{"self":[{"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/comments?post=814"}],"version-history":[{"count":0,"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/pages\/814\/revisions"}],"wp:attachment":[{"href":"https:\/\/mareklukk24.thkit.ee\/wp\/wp-json\/wp\/v2\/media?parent=814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}