{"id":455,"date":"2026-02-24T15:58:51","date_gmt":"2026-02-24T13:58:51","guid":{"rendered":"https:\/\/blog.edu.turku.fi\/allu\/?page_id=455"},"modified":"2026-03-17T08:25:05","modified_gmt":"2026-03-17T06:25:05","slug":"toisto-tasot","status":"publish","type":"page","link":"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/ohjelmoinnin_aiheet\/toisto-tasot\/","title":{"rendered":"Toisto"},"content":{"rendered":"\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/ohjelmoinnin_aiheet\/\" style=\"background-color:#d6d6ff\">Palaa takaisin<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-color has-link-color wp-elements-1520aeabbce14695cadc4c0df9c185c5\" style=\"color:#4e56b1\"><strong>Toisto<\/strong><\/h2>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-9b8b8c1ce71dd6dd2eb89de23499e5d5\" style=\"color:#4e56b1;font-size:18px\"><strong>Teht\u00e4v\u00e4t on jaettu kolmeen eri vaikeustasoon. Valitse alta sinulle sopiva taso.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/toisto-tasot\/toisto-helpot\/\" style=\"background-color:#e6f3b7\">Helppo<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/toisto-tasot\/toisto-keskivaikeat\/\" style=\"background-color:#d6d6ff\">Perus<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/toisto-tasot\/toisto-vaikeat\/\" style=\"background-color:#fcd8c8\">Vaikea<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-background has-medium-font-size\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-1\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Toisto &#8211; teoria<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-1\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-1-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<h2 class=\"wp-block-heading\" style=\"font-size:25px\">While<\/h2>\n\n\n\n<p>Ohjelmoinnissa hy\u00f6dynnet\u00e4\u00e4n toistoa moneen asiaan ja se onkin yksi keskeisimmist\u00e4 rakenteista ohjelmoinnissa. Pythonissa on muutamia tapoja luoda toistorakenteita, eli silmukoita. N\u00e4ist\u00e4 yleisimm\u00e4t ovat while- ja for-silmukat.<\/p>\n\n\n\n<p>While-silmukan rakenne:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>while ehto:\n&nbsp;&nbsp;&nbsp; suorita toiminto<\/code><\/pre>\n\n\n\n<p>While-silmukkaa toistetaan niin kauan kuin ehto on tosi, eli toimintoa suoritetaan, kunnes ehto ei ole tosi tai silmukka rikotaan muulla tavalla. While-silmukassa oleellista onkin, ett\u00e4 jokin muuttuu joka toistolla, jotta silmukka p\u00e4\u00e4ttyy joskus. While-silmukkaa k\u00e4ytet\u00e4\u00e4nkin yleens\u00e4 silloin, kun ei tiedet\u00e4 tarkasti, kuinka monta toistoa tarvitaan, ett\u00e4 ehto toteutuu.<\/p>\n\n\n\n<p>Esimerkiksi seuraavanlainen silmukka on p\u00e4\u00e4ttym\u00e4t\u00f6n, eli se p\u00e4\u00e4ttyy vasta, kun ohjelma suljetaan tai kun tietokoneen muisti loppuu ja ohjelma (tai jopa tietokone) kaatuu, eli lakkaa toimimasta virheen takia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ehto = True\n\nwhile ehto:\n&nbsp;&nbsp;&nbsp; print(\u201dTervehdys!\u201d)<\/code><\/pre>\n\n\n\n<p>While silmukkaan tuleekin lis\u00e4t\u00e4 jotain, joka muuttuu joka kierroksella ja joka vaikuttaa silmukan p\u00e4\u00e4ttymiseen joko ehdolla tai muulla tavoin.<\/p>\n\n\n\n<p>Eli p\u00e4\u00e4tt\u00e4\u00e4ksemme edellisen tyyppisen while-silmukan, meid\u00e4n on lis\u00e4tt\u00e4v\u00e4 siihen jotain, joka muuttuu esim. seuraavasti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ehto = True\n\nwhile ehto:\n&nbsp;&nbsp;&nbsp; print(\u201dTervehdys!\u201d)\n&nbsp;&nbsp;&nbsp; ehto = False<\/code><\/pre>\n\n\n\n<p>N\u00e4in silmukka saadaan p\u00e4\u00e4tetyksi, mutta nyt suoritamme vain yhden kierroksen. Haluttu m\u00e4\u00e4r\u00e4 kierroksia voidaan m\u00e4\u00e4ritell\u00e4 jo ehdossa, kuten t\u00e4ss\u00e4 esimerkiss\u00e4, jossa tervehdys tulostetaan kolmesti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 0\n\nwhile i &lt;= 2:\n&nbsp;&nbsp;&nbsp; print(\u201dTervehdys!\u201d)\n&nbsp;&nbsp;&nbsp; i += 1<\/code><\/pre>\n\n\n\n<p>Voidaan my\u00f6s k\u00e4ytt\u00e4\u00e4 erillist\u00e4 ehtolausetta silmukan suorittamisen p\u00e4\u00e4tt\u00e4miseksi, kuten t\u00e4ss\u00e4 esimerkiss\u00e4, jossa suorittaminen p\u00e4\u00e4tet\u00e4\u00e4n, kun ehtolauseen ehto t\u00e4yttyy.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 0\nehto = True\n\nwhile ehto:\n&nbsp;&nbsp;&nbsp; print(\u201cTervehdys!\u201d)\n\n&nbsp;&nbsp;&nbsp; if i &gt;= 2:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ehto = False\n&nbsp;&nbsp;&nbsp; i += 1<\/code><\/pre>\n\n\n\n<p>Silmukoiden suorittaminen voidaan p\u00e4\u00e4tt\u00e4\u00e4 my\u00f6s break-rakenteella. break keskeytt\u00e4\u00e4 silmukan suorittamisen siin\u00e4 kohdassa, miss\u00e4 break-rakenne suoritetaan. Seuraavassa esimerkiss\u00e4 keskeytet\u00e4\u00e4n silmukan suoritus break-rakenteella, kun ehtolauseen ehto t\u00e4yttyy.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 0\n\nwhile True:\n&nbsp;&nbsp;&nbsp; print(\u201cTervehdys!\u201d)\n\n&nbsp;&nbsp;&nbsp; if i &gt;= 2:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break\n&nbsp;&nbsp;&nbsp; i += 1<\/code><\/pre>\n\n\n\n<p>Toiston voi toteuttaa my\u00f6s for-silmukkana, jonka avulla voidaan helposti k\u00e4yd\u00e4 l\u00e4pi esim. lista.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:25px\">For<\/h2>\n\n\n\n<p>Jos tied\u00e4mme tarkasti tarvittavien toistojen m\u00e4\u00e4r\u00e4n, voimme k\u00e4ytt\u00e4\u00e4 for-silmukkaa. For-silmukka eroaa while-silmukasta siten, ett\u00e4 for-silmukassa toistojen m\u00e4\u00e4r\u00e4 on etuk\u00e4teen tiedossa. Siin\u00e4 miss\u00e4 while-silmukka toistaa koodilohkoa niin kauan kuin jokin ehto p\u00e4tee, for-silmukka toistaa koodilohkon jokaista l\u00e4pik\u00e4yt\u00e4v\u00e4n v\u00e4lin alkiota kohden, eli niin monta kertaa kuin l\u00e4pik\u00e4yt\u00e4v\u00e4ll\u00e4 v\u00e4lill\u00e4 on alkioita.<\/p>\n\n\n\n<p>Kuten while-silmukan, my\u00f6s for-silmukan k\u00e4ytt\u00f6\u00f6n on pari yleisesti k\u00e4ytetty\u00e4 tapaa.<\/p>\n\n\n\n<p>Tutkitaan ensinn\u00e4 listan l\u00e4pik\u00e4ymist\u00e4, johon for-silmukka soveltuu erinomaisesti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for alkio in lista:\n&nbsp;&nbsp;&nbsp; tee jotain<\/code><\/pre>\n\n\n\n<p>For-silmukka siis k\u00e4y l\u00e4pi listan, joka on sen l\u00e4pik\u00e4yt\u00e4v\u00e4n\u00e4 tietorakenteena, t\u00e4ss\u00e4 tapauksessa kokoelmana. For-silmukan osat ovatkin for-avainsana, silmukkamuuttuja, in-avainsana sek\u00e4 l\u00e4pik\u00e4yt\u00e4v\u00e4 (tietorakenne). For-lauseen, kuten vastaavien toisto- tai ehtorakenteiden, per\u00e4\u00e4n tulee kaksoispiste ( : ), joka merkitsee sen p\u00e4\u00e4ttymist\u00e4 ja seuraavan koodilohkon aloittamista (uudelle riville sisennettyn\u00e4).<\/p>\n\n\n\n<p>MUOTOILE SEEURAAVA<\/p>\n\n\n\n<p>Silmukka ei tietenk\u00e4\u00e4n k\u00e4y l\u00e4pi listaa, jota ei ole olemassa, eli listan, joka k\u00e4yd\u00e4\u00e4n l\u00e4pi, tulee olla alustettu ennen for-silmukkaa.<\/p>\n\n\n\n<p>Esim. seuraava EI toimi.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for alkio in lista:\n&nbsp;&nbsp;&nbsp; tee jotain\n\nlista = &#091;0, 1, 2, 3]<\/code><\/pre>\n\n\n\n<p>Listan m\u00e4\u00e4ritys tulee olla ennen for-silmukkaa, eli koodi toimisi, jos se olisi seuraavanlainen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lista = &#091;0, 1, 2, 3]\n\nfor alkio in lista:\n&nbsp;&nbsp;&nbsp; tee jotain<\/code><\/pre>\n\n\n\n<p>Listan l\u00e4pik\u00e4yminen on kuitenkin vain yksi vaihtoehto for-silmukan k\u00e4yt\u00f6lle. Lis\u00e4ksi voidaan k\u00e4yd\u00e4 l\u00e4pi jokin lukuv\u00e4li k\u00e4ytt\u00e4m\u00e4ll\u00e4 range()-funktiota. range() palauttaa per\u00e4kk\u00e4isi\u00e4 lukuja annettujen parametrien mukaisesti aloittaen oletuksena nollasta ja p\u00e4\u00e4ttyen juuri ennen sit\u00e4 lukua, joka on annettu (eli viimeinen luku ei tule mukaan). Esim. seuraava for-silmukka k\u00e4y l\u00e4pi luvut nollasta viiteen j\u00e4tt\u00e4en pois range():n parametriksi annetun luvun.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(6):\n&nbsp;&nbsp;&nbsp; tee jotain<\/code><\/pre>\n\n\n\n<p>Lukuv\u00e4lin l\u00e4pik\u00e4yminen aloitetaan oletuksena nollasta, sill\u00e4 Pythonissa indeksointi aloitetaan nollasta, kuten useimmissa ohjelmointikieliss\u00e4. range()-funktiolle voi kuitenkin antaa parametriksi my\u00f6s lukuv\u00e4lin alkuarvon seuraavan esimerkin mukaisesti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(1,6):\n&nbsp;&nbsp;&nbsp; tee jotain<\/code><\/pre>\n\n\n\n<p>T\u00e4m\u00e4 silmukka k\u00e4y l\u00e4pi luvut yhdest\u00e4 viiteen j\u00e4tt\u00e4en j\u00e4lleen pois parametrina annetun numeron 6. Lis\u00e4ksi range()-funktiolle voi antaa viel\u00e4 yhden parametrin, askeleen, joka m\u00e4\u00e4ritt\u00e4\u00e4, kuinka monta per\u00e4kk\u00e4ist\u00e4 lukua kerrallaan lukuv\u00e4lill\u00e4 edet\u00e4\u00e4n.<\/p>\n\n\n\n<p>Esim. seuraava k\u00e4y l\u00e4pi kokonaisluvut [0:11[ siirtyen aina kaksi lukua eteenp\u00e4in yhden sijasta.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(0,11,2):\n&nbsp;&nbsp;&nbsp; print(i)<\/code><\/pre>\n\n\n\n<p>Tulosteena tulisi siis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0\n2\n4\n6\n8\n10<\/code><\/pre>\n\n\n\n<p>Huomioi my\u00f6s, miten voimme tulostaa indeksin, joka k\u00e4y l\u00e4pi range()-funktion lukuv\u00e4lin. Voimme my\u00f6s tulostaa listassa olevat alkiot samalla tyylill\u00e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lista = &#091;\u201dyksi\u201d, \u201dkaksi\u201d, \u201dnelj\u00e4\u201d]\n\nfor alkio in lista:\n&nbsp;&nbsp;&nbsp; print(alkio)<\/code><\/pre>\n\n\n\n<p>T\u00e4m\u00e4 tulostaisi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yksi\nkaksi\nnelj\u00e4<\/code><\/pre>\n\n\n\n<p>Voimme hy\u00f6dynt\u00e4\u00e4 indeksej\u00e4 my\u00f6s eri tavoin esim. k\u00e4ytt\u00e4en itse listan sijaan listan pituutta ja antamalla se for-silmukan l\u00e4pik\u00e4yt\u00e4v\u00e4ksi.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lista = &#091;\u201dyksi\u201d, \u201dkaksi\u201d, \u201dnelj\u00e4\u201d]\n\nfor i in range(0, len(lista)):\n&nbsp;&nbsp;&nbsp; print(lista&#091;i])<\/code><\/pre>\n\n\n\n<p>T\u00e4m\u00e4 tulostaisi vastaavasti:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yksi\nkaksi\nnelj\u00e4<\/code><\/pre>\n\n\n\n<p>For-silmukan l\u00e4pik\u00e4yt\u00e4v\u00e4 tietorakenne voi olla siis tallennettu muuttujaan, kuten havaitsimme aikaisemmin. Muuttujiin voidaan tallentaa my\u00f6s lausekkeita, kuten range()-funktio parametreineen.<\/p>\n\n\n\n<p>Esim.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sarja = range(0, 10, 3)\n\nfor luku in sarja:\n&nbsp;&nbsp;&nbsp; print(luku)<\/code><\/pre>\n\n\n\n<p>T\u00e4m\u00e4 tulostaisi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0\n3\n6\n9<\/code><\/pre>\n\n\n\n<p>Useimmiten indeksi\u00e4 merkit\u00e4\u00e4n muuttujalla i (<em>i niin kuin index<\/em>), mutta se voi olla mik\u00e4 vain muuttuja. K\u00e4ydess\u00e4 l\u00e4pi listoja voidaan merkit\u00e4 listan j\u00e4sen indeksiksi, kuten yll\u00e4 olevissa esimerkeiss\u00e4 \u201dalkio in lista\u201d tai \u201dluku in sarja\u201d. Jos k\u00e4yd\u00e4\u00e4n l\u00e4pi tietorakennetta, jonka sis\u00e4lt\u00f6 on yhdenlaista, voidaan antaa sillekin koherentimpi nimi, esim. \u201dauto in autot\u201d.<\/p>\n\n\n\n<p>For-silmukka voidaan, kuten while-silmukka, pys\u00e4ytt\u00e4\u00e4 break-lauseella.<\/p>\n\n\n\n<p>Esim. seuraava for-silmukka ei k\u00e4y l\u00e4pi kaikkia lukuja [0:10[, sill\u00e4 se pys\u00e4ytet\u00e4\u00e4n, kun indeksi on 5.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(0, 10):\n\n&nbsp;&nbsp;&nbsp; if i == 5:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break<\/code><\/pre>\n\n\n\n<p>Jos for-silmukka suoritetaan loppuun, voidaan suorittaa jokin toimenpide k\u00e4ytt\u00e4m\u00e4ll\u00e4 valintarakenteista tuttua else-lausetta.<\/p>\n\n\n\n<p>Esim. seuraava for-silmukka tulostaa \u201dValmis\u201d, kun se on suoritettu pys\u00e4htym\u00e4tt\u00e4 loppuun asti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(0,6):\n&nbsp;&nbsp;&nbsp; tee jotain\n\nelse:\n&nbsp;&nbsp;&nbsp; print(\u201dValmis\u201d)<\/code><\/pre>\n\n\n\n<p>Sek\u00e4 for- ett\u00e4 while-silmukoilla voidaan my\u00f6s hyp\u00e4t\u00e4 yhden \u201dkierroksen\u201d, eli iteraation yli k\u00e4ytt\u00e4m\u00e4ll\u00e4 continue-lausetta.<\/p>\n\n\n\n<p>Esim.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 0\n\nwhile i &lt; 5:\n&nbsp;&nbsp;&nbsp; i = i + 1\n\n&nbsp;&nbsp;&nbsp; if i == 3:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue\n&nbsp;&nbsp;&nbsp; print(i)<\/code><\/pre>\n\n\n\n<p>Antaisi seuraavan tulostuksen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1\n2\n4\n5<\/code><\/pre>\n\n\n\n<p>Vastaavasti for-silmukan kanssa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in range(1,6):\n\n&nbsp;&nbsp;&nbsp; if (i == 3):\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue\n&nbsp;&nbsp;&nbsp; print(i)<\/code><\/pre>\n\n\n\n<p>Antaisi saman tulostuksen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1\n2\n4\n5<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"#\" style=\"background-color:#d6d6ff\">Hurraa! Teoriaosuus on nyt k\u00e4yty l\u00e4pi. On aika siirty\u00e4 teht\u00e4vien pariin.<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Toisto Teht\u00e4v\u00e4t on jaettu kolmeen eri vaikeustasoon. Valitse alta sinulle sopiva taso.<\/p>\n","protected":false},"author":3743,"featured_media":0,"parent":187,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-455","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/users\/3743"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/comments?post=455"}],"version-history":[{"count":23,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/455\/revisions"}],"predecessor-version":[{"id":2006,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/455\/revisions\/2006"}],"up":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/187"}],"wp:attachment":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/media?parent=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}