{"id":8156,"date":"2014-09-19T21:18:50","date_gmt":"2014-09-20T01:18:50","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=8156"},"modified":"2014-11-09T15:57:41","modified_gmt":"2014-11-09T20:57:41","slug":"4-lt","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/4-lt\/","title":{"rendered":"4: Duomen\u0173 tipai"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version.<br \/>\nLithuanian translators: Jurgis Pralgauskis, jurgis.pralgauskis@gmail.com, Aidis Stukas aidiss@gmail.com<br \/>\nOriginal lesson author: David Pritchard, daveagp@gmail.com, http:\/\/cscircles.ca<br \/>\nLicense: http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/-->\n<p><em>Nuo \u0161ios pamokos pavyzd\u017eiai ir kodo \u012fvedimo laukeliai tur\u0117s mygtukus<\/em> <strong>\u201eProgramavimo konsol\u0117\u201c<\/strong> <em>ir<\/em> <strong>\u201eVeiksm\u0173 sekimas\u201c<\/strong>. <em>Naudokite juos kodo nagrin\u0117jimui.<\/em><\/p>\n<p><a href=\"\/0-lt\/\">\"Hello, World!\"<\/a> u\u017edavinyje mes i\u0161mokome, kad Python gali pakartoti \u012fvest\u0105 tekst\u0105. Mes taip pat i\u0161mokome atlikti kelet\u0105 veiksm\u0173 su skai\u010diais. Skai\u010diai ir tekstas yra skirtingo tipo duomenys - skiriasi j\u0173 saugojimas kompiuterio atmintyje ir veiksmai, kuriuos galima su jais atlikti.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox0'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Kas bus, jei palyginsime skai\u010di\u0173 ir tekst\u0105 - kuris didesnis?<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 84px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=3 readonly='readonly'  style = 'height : 84px;'  class='pyboxCode RO'>\nx = \"Hello, World!\"\ny = 35\nz = max(x, y)<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(0)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(0,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse0\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"0\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"be6e76a12e6524cb283e5659895e5c2f\"\/>\n<div id='pbresults0' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit0\").value = \"Run program\";document.getElementById(\"inputInUse0\").value = \"N\";<\/script>\n<\/p>\n<p>Kaip matote, gauname klaidos prane\u0161im\u0105, kad funkcijai <code>max<\/code> pateikti argumentai yra skirtingo tipo - neai\u0161ku, pagal k\u0105 juos lyginti.<\/p>\n<ul>\n<li><code>\"Hello, World!\"<\/code> yra teksto eilut\u0117 (angl. (text) <strong>string<\/strong>). Ji Python\u2019e \u017eymima <code>str<\/code>. Tai yra simboli\u0173 ar skyrybos \u017eenkl\u0173 eil\u0117 (daugiau \u017er. 7A pamokoje).<\/li>\n<li><code>35<\/code> yra sveikasis skai\u010dius (angl. <strong>integer<\/strong>), \u017eymimas - <code>int<\/code>. Pavyzd\u017eiui, 42, -12, and 0 yra \u201eint\u201c tipo.<\/li>\n<\/ul>\n<p>Ar gal\u0117tum\u0117te paai\u0161kinti, kuo skiriasi <code>\u201c42\u201d<\/code> ir <code>42<\/code>?<\/p>\n<p>Netinkamo tipo duomen\u0173 naudojimas yra da\u017enai pasitaikinti programavimo klaida. \u012esivaizduokite, jog bandote gerti obuol\u012f: to negalite padaryti, kadangi gerti galima tik skys\u010dius.<\/p>\n<p>Duomen\u0173 tip\u0105 galite su\u017einoti i\u0161kviesdami <code>type<\/code> funkcij\u0105.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform1\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox1'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Kaip su\u017einoti duomen\u0173 tip\u0105.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 84px;'><textarea wrap='off' name='usercode1' id='usercode1'  cols=10 rows=3 readonly='readonly'  style = 'height : 84px;'  class='pyboxCode RO'>\nprint(type(\"Hello, World!\"))\nprint(type(34))\nprint(type(1.234))<\/textarea><\/div>\n<div id='pbhistory1' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit1' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(1)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(1,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse1\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"1\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"768daed3b2e69c5cd5bc93ea45e1fc32\"\/>\n<div id='pbresults1' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit1\").value = \"Run program\";document.getElementById(\"inputInUse1\").value = \"N\";<\/script>\n<\/p>\n<p>(\u017dod\u017eio <code>class<\/code> reik\u0161m\u0117 pana\u0161i kaip \u201etipas\u201c - nurodo\u00a0duomen\u0173 pavadinim\u0105\u00a0bendroje klasifikacijoje.) Pavyzdyje matome, kad skai\u010diai yra toliau kategorizuojami \u012f tipus: <code>int<\/code> ir <code>float<\/code>, kuris naudojamas skai\u010diams su reik\u0161me po kablelio saugoti - tuomet reik\u0161m\u0117s atminty saugomos kiek kitaip - b\u016bna apytiksl\u0117s (daugiau \u017er. pamokoje 7B). Jei skai\u010diavime bus ir <code>float<\/code>, ir <code>int<\/code> tip\u0173 reik\u0161m\u0117s, rezultatas bus <code>float<\/code> tipo, \u017er. pvz.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox2'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div><code>int<\/code> and a <code>float<\/code> reik\u0161mi\u0173 naudojimas kartu.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode2' id='usercode2'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\nx = 1.2\ny = 2\nz = x * y\nprint(x, y, z)\nprint(type(x), type(y), type(z))<\/textarea><\/div>\n<div id='pbhistory2' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit2' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(2)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(2,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse2\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"2\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"6f21ee769bd3e22ec989fbb8a69edbf5\"\/>\n<div id='pbresults2' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit2\").value = \"Run program\";document.getElementById(\"inputInUse2\").value = \"N\";<\/script>\n<\/p>\n<p>Kai Python gauna veiksm\u0105 su <code>int<\/code> ir <code>float<\/code>, jis paver\u010dia visus <code>int<\/code> \u012f <code>float<\/code> ir tada atlieka veiksmus.<\/p>\n<div class='pybox modeNeutral' id='pybox3'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Multiple Choice Exercise: <\/span><span class='title'>Skai\u010diai su kalbeliu<\/span><\/div><div>Jei ankstesniame pavyzdy pakeisime <code>1.2<\/code> \u012f <code>1.5<\/code>, k\u0105 atspausdins pirma eilut\u0117?<\/div><label>Your choice: <\/label><select id=\"pyselect3\"><option value=\"d\" selected>Select one<\/option><option value=\"w\">1.5 2 3<\/option><option value=\"r\">1.5 2 3.0<\/option><option value=\"w\">An error occurs<\/option><option value=\"w\">1.5 2.0 3.0<\/option><\/select><div class='pyboxbuttons'><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"4.mixing\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick='pbMultiCheck(3)'\/><\/div><div class=\"pbresults\" id=\"pyMultiResults3\"><\/div><div class=\"epilogue\">Teisingai! \u010cia reikt\u0173 paai\u0161kinti 2 dalykus, kad suprastume, kod\u0117l <code>z<\/code> buvo atspausdintas <code>3.0<\/code> (o ne 3).\n\n<ul>\n<ul>\n\n<li>Skai\u010diuojant <code>x * y<\/code> kartu naudojami <code>int<\/code> ir <code>float<\/code> tipai, tod\u0117l Pythonas int paver\u010dia \u012f <code>float<\/code>, ir gr\u0105\u017eina <code>z<\/code> reik\u0161m\u0119 su kableliu.<\/li>\n<\/ul>\n<\/ul>\n\n Kai Python spausdina <code>float<\/code> reik\u0161m\u0119, b\u016btinai spausdinamas ir kablelis; jeigu skai\u010dius yra sveikas - pridedama <code><code>.0<\/code><\/code>.\n\n\n\n P.s.: \u0161io skai\u010diavimo metu <code>y<\/code> reik\u0161m\u0117 ir tipas nepasikeit\u0117 .\n<\/div><\/div>\n<p>Da\u017enai b\u016bna svarbu pakeisti duomen\u0173 tip\u0105. Pana\u0161iai kaip obuol\u012f\u00a0galime paversti\u00a0skysta mase,\u00a0naudodami blender\u012f. Tam\u00a0naudojamos tipo pakeitimo (angl., <strong>typecast<\/strong>) funkcijos:<\/p>\n<pre>x = float(\"3.4\")\r\n\r\nprint(x-1)<\/pre>Tekst\u0105, kuriame buvo u\u017era\u0161yta <code>\"3.4\"<\/code> pakei\u010dia \u012f skai\u010di\u0173 su kableliu<code>3.4<\/code>,ir atspausdina <code>2.4<\/code>. Be tipo pakeitimo, programa <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=x%3D%223.4%22%0Aprint%28x-1%29\" target=\"_blank\">u\u017el\u016b\u017et\u0173<\/a>.<\/p>\n<p><table class='pywarn'><tr><td class='pywarnleft'><img src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/warning.png'\/><\/td><td class='pywarnright'><span> Python leid\u017eia kai kuriuos aritmetinius veiksmus atlikti su tekstu naudojant\u00a0skai\u010dius. Komanda <code><code>print(\"Valio!\" * 2)<\/code> <\/code> atspausdina <code>Valio!Valio!<\/code>. Kaip matote, Python tiesiog 2 kartus padaugino nurodyt\u0105 tekst\u0105. V\u0117liau pamatysime, jog <code>str<\/code> tipo duomenis taip pat galima sud\u0117ti, bet atlikti dalybos ar atimties nepavyks.  <\/span><\/td><\/table><\/p>\n<p>\u012evairios tipo pakeitimo funkcijos elgiasi skirtingai :<\/p>\n<ul>\n<li>kei\u010diant <code>float<\/code> \u012f <code>int<\/code>\u201enubraukiama\u201c informacija po kablelio: <code>int(1.234)<\/code> duoda <code>1<\/code>, o <code>int(-34.7)<\/code> duoda <code>-34<\/code> (atliekamas apvalinimas \u017eemyn).<\/li>\n<li>keisti tekst\u0105 (<code>str<\/code>) \u012f <code>int<\/code> galima tik tada, kai tekste yra u\u017era\u0161ytas sveikas skai\u010dius (pvz, skaitant duomenis i\u0161 failo), pvz., <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=x%20%3D%20int%28%221.234%22%29\" target=\"_blank\"><code>int(\"1.234\")<\/code>\u00a0bus klaida<\/a>.<\/li>\n<li>keisti <code>str<\/code> \u012f <code>float<\/code> galima tik tada, jei tekste u\u017era\u0161ytas realusis skai\u010dius (ir nieko daugiau), o, pvz., <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=x%20%3D%20float%28%22sandwich%22%29\" target=\"_blank\"><code>float(\"sandwich\")<\/code>\u00a0bus klaida<\/a>.<\/li>\n<\/ul>\n<p>Vienas da\u017eniausi\u0173 atvej\u0173, kai reikia tipo keitimo, yra naudotojo \u012fvest\u0173 duomen\u0173 atpa\u017einimas. \u012evestas tekstas ver\u010diamas \u012f skai\u010di\u0173:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform4\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox4'>\n<div class=\"heading\"><span class='type'>Example: <\/span><span class='title'>Tipo keitimas<\/span><\/div><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode4' id='usercode4'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\ninputStr = \"12\"                          # a piece of user input\nprint(\"The input type is\", type(inputStr))\nx = int(inputStr)\nprint(x, \"is of type\", type(x), \"and its square is\", x*x)\nprint(inputStr * inputStr)               # this line should cause an error<\/textarea><\/div>\n<div id='pbhistory4' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit4' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(4)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(4,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse4\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"4\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"7d5eae97c24446597e155c51dd6317f2\"\/>\n<div id='pbresults4' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit4\").value = \"Run program\";document.getElementById(\"inputInUse4\").value = \"N\";<\/script>\n<\/p>\n<p>Dar vienas pratimas pamokos pabaigai.<\/p>\n<p><table class='pywarn'><tr><td class='pywarnleft'><img src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/warning.png'\/><\/td><td class='pywarnright'><span> Kadangi yra daug mygtuk\u0173 po kodo \u012fvedimo laukeliu, kai kuriuos perkel\u0117me \u012f meniu <strong>\u201eDaugiau veiksm\u0173\u2026\u201c<\/strong> <\/span><\/td><\/table><\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform5\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox5'>\n<img title='You have not yet completed this problem.' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/files\/icon.png' class='pycheck'\/><div class=\"heading\"><span class='type'>Coding Exercise: <\/span><span class='title'>Tasty Typecasting<\/span><\/div>Para\u0161ykite program\u0105, kuri pad\u0117s jums pamaitinti j\u016bs\u0173 draugus <em>kvadratin\u0117mis picomis<\/em>. Tarkime, kad programa jums pateikia teksto eilut\u0119 <code>inputStr<\/code>. Jame bus skai\u010dius su kableliu, rei\u0161kiantis picos kra\u0161tin\u0117s ilg\u012f centimetrais <em>L<\/em>. Picos plotas tur\u0117t\u0173 b\u016bti skai\u010diuojamas naudojant formul\u0119 <em>A = L*L<\/em>. Tada, tarkime, kad kiekvienas draugas turi suvalgyti po 100 cm<sup>2<\/sup>. Suskai\u010diuokite, kiek \u017emoni\u0173 gali b\u016bti pavalgydinti, <em>suapvalindami iki artimiausio sveiko skai\u010diaus.<\/em> <a class=\"hintlink\"  id=\"hintlink6\">Hint<\/a><\/p>\n<div><em>Pavyzdys<\/em>: jei <code>inputStr<\/code> yra <code>\"17.5\"<\/code>, plotas bus 306.25 cm<sup>2<\/sup>, tad teisingas atsakymas yra <code>3<\/code>.<\/div>\n<p><div class=\"helpOuter\" style=\"display: none;\"><div class=\"helpInner\"><div style=\"text-align: center\">You need to create an account and log in to ask a question.<\/div><\/div><\/div><div class='pyboxTextwrap pyboxCodewrap RW resizy'  style='height: 526px;'><textarea wrap='off' name='usercode5' id='usercode5'  cols=10 rows=20   class='pyboxCode RW'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory5' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit5' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(5)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(5,'Y')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(5,'4.pizza')\" ><\/td>\n<\/tr><\/table><select id='pbSelect5' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='help' data-pbonclick=\"helpClick(5);\" >Help<\/option>\n<\/select><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse5\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"5\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"a9ffbb579638836c943821144f643da7\"\/>\n<div id='pbresults5' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit5\").value = \"Run program\";document.getElementById(\"inputInUse5\").value = \"N\";<\/script>\n<\/p>\n<p>V\u0117lesniuose pavyzd\u017eiuose da\u017enai duomenys bus nuskaitomi i\u0161 teksto (po vien\u0105 eilut\u0119), naudojant funkcij\u0105 \"<code>input( )<\/code>\"\u00a0 -- angl. rei\u0161kia \u201e(duomen\u0173) \u012fvedimas\u201c. Pvz., tokiu atveju, picos u\u017eduoties prad\u017eioje b\u016bt\u0173 para\u0161yta:<\/p>\n<pre><code>inputStr<\/code> = <code>input( )<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Nuo \u0161ios pamokos pavyzd\u017eiai ir kodo \u012fvedimo laukeliai tur\u0117s mygtukus \u201eProgramavimo konsol\u0117\u201c ir \u201eVeiksm\u0173 sekimas\u201c. Naudokite juos kodo nagrin\u0117jimui. \"Hello, World!\" u\u017edavinyje mes i\u0161mokome, kad Python gali pakartoti \u012fvest\u0105 tekst\u0105. Mes taip pat i\u0161mokome atlikti kelet\u0105 veiksm\u0173 su skai\u010diais. Skai\u010diai &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/4-lt\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-8156","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/8156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/comments?post=8156"}],"version-history":[{"count":12,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/8156\/revisions"}],"predecessor-version":[{"id":8719,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/8156\/revisions\/8719"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=8156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}