{"id":39,"date":"2019-02-27T08:27:53","date_gmt":"2019-02-27T08:27:53","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/?post_type=chapter&#038;p=39"},"modified":"2019-06-08T07:09:57","modified_gmt":"2019-06-08T07:09:57","slug":"tabel","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/chapter\/tabel\/","title":{"raw":"Failist j\u00e4rjendisse lugemine","rendered":"Failist j\u00e4rjendisse lugemine"},"content":{"raw":"<p class=\"vspace\">Seni oleme tegutsenud kahem\u00f5\u00f5tmeliste j\u00e4rjenditega, mille elemendid kirjutasime programmiteksti sisse, n\u00e4iteks:<\/p>\r\n\r\n<div class=\"vspace\"><\/div>\r\n<div>\r\n<div class=\"syntaxhighlighter nogutter python\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">tabel = [[1, 2, 4], [-1, 5, 0]]<\/pre>\r\n<\/div>\r\n<\/div>\r\n<p class=\"vspace\">v\u00f5i otse k\u00e4sureal funktsioonile argumente andes, n\u00e4iteks:<\/p>\r\n\r\n<div class=\"vspace\"><\/div>\r\n<div>\r\n<div class=\"syntaxhighlighter nogutter python\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; on_bingo_tabel([[1, 30, 34, 55, 75], [10, 16, 40, 50, 67], [5, 20, 38, 48, 61], [4, 26, 43, 49, 70], [15, 17, 33, 51, 66]])<\/pre>\r\n<\/div>\r\n<\/div>\r\n<p class=\"vspace\">V\u00e4hegi suuremate mahtude juures on see ebamugav ja praktikas ka tihti v\u00f5imatu, sest tahame sama programmi abil t\u00f6\u00f6delda palju erinevaid andmeid. Failist lugemist k\u00e4sitlesime varem <a class=\"urllink\" href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/lugemine-failist\/\" target=\"_blank\" rel=\"noopener noreferrer\">programmeerimise \u00f5pikus<\/a>. N\u00fc\u00fcd vaatame, kuidas failist andmed mugavalt kahem\u00f5\u00f5tmelisse j\u00e4rjendisse saada.<\/p>\r\n<p class=\"vspace\">Olgu n\u00e4iteks \u00f5pilaste saadud (t\u00e4isarvulised) punktid t\u00fchikutega eraldatult failis, igal real \u00fche \u00f5pilase punktid. N\u00e4iteks:<\/p>\r\n\r\n<div class=\"vspace\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">1 4 5\r\n3 6 8\r\n2 4 8\r\n10 5 0<\/pre>\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<\/div>\r\n<div>\r\n\r\n<strong> <code>[h5p id=\"11\"]<\/code> <\/strong>\r\n\r\n&nbsp;\r\n\r\n<\/div>\r\n<p class=\"vspace\">Kahem\u00f5\u00f5tmelisse j\u00e4rjendisse saab need andmed n\u00e4iteks nii:<\/p>\r\n\r\n<div>\r\n<div class=\"syntaxhighlighter nogutter python\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">punktide_tabel = []\r\n \r\nfor rida in fail:  # iga rea jaoks failist\r\n    op_punktid = []  # kogume \u00fche \u00f5pilase punkte\r\n    osad = rida.split() # t\u00fchikute kohalt osadeks\r\n    for osa in osad:  # osade kaupa\r\n        op_punktid.append(int(osa)) # j\u00e4rjekordsed punktid juurde\r\n \r\n    punktide_tabel.append(op_punktid) # \u00f5pilase punktide j\u00e4rjend juurde<\/pre>\r\n<div class=\"vspace\">\r\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\r\n<\/div>\r\n<div>\r\n\r\n<strong> <code>[h5p id=\"12\"]<\/code> <\/strong>\r\n<h3>Eraldusm\u00e4rgid andmetes<\/h3>\r\n<\/div>\r\nEelmises n\u00e4ites olid \u00fchel real olevad andmed eraldatud t\u00fchikutega. Ajalooliselt on eraldajaks olnud n\u00e4iteks koma. Sellest tuleb ka levinud failiformaadi l\u00fchend CSV - <a class=\"urllink\" href=\"https:\/\/en.wikipedia.org\/wiki\/Comma-separated_values\" target=\"_blank\" rel=\"noopener noreferrer\">ingl <em>Comma-separated values<\/em><\/a>. Tegelikult ei pruugi koma alati h\u00e4sti eraldajaks sobida, kuna v\u00f5ib andmetes t\u00e4hendada midagi muud, n\u00e4iteks komadega arve. Levinumad eraldajad on tabulatsioonim\u00e4rk <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"\\t\"<\/code><\/code> ja semikoolon. Ka meie edasistes n\u00e4idetes on eraldajaks just semikoolon. CSV-failide kasutamisest r\u00e4\u00e4gime <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/chapter\/lisalugemine-csv\/\">lisalugemise peat\u00fckis<\/a>.\r\n\r\n<\/div>\r\n<\/div>","rendered":"<p class=\"vspace\">Seni oleme tegutsenud kahem\u00f5\u00f5tmeliste j\u00e4rjenditega, mille elemendid kirjutasime programmiteksti sisse, n\u00e4iteks:<\/p>\n<div class=\"vspace\"><\/div>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">tabel = [[1, 2, 4], [-1, 5, 0]]<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">v\u00f5i otse k\u00e4sureal funktsioonile argumente andes, n\u00e4iteks:<\/p>\n<div class=\"vspace\"><\/div>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">&gt;&gt;&gt; on_bingo_tabel([[1, 30, 34, 55, 75], [10, 16, 40, 50, 67], [5, 20, 38, 48, 61], [4, 26, 43, 49, 70], [15, 17, 33, 51, 66]])<\/pre>\n<\/div>\n<\/div>\n<p class=\"vspace\">V\u00e4hegi suuremate mahtude juures on see ebamugav ja praktikas ka tihti v\u00f5imatu, sest tahame sama programmi abil t\u00f6\u00f6delda palju erinevaid andmeid. Failist lugemist k\u00e4sitlesime varem <a class=\"urllink\" href=\"https:\/\/web.htk.tlu.ee\/digitaru\/programmeerimine\/chapter\/lugemine-failist\/\" target=\"_blank\" rel=\"noopener noreferrer\">programmeerimise \u00f5pikus<\/a>. N\u00fc\u00fcd vaatame, kuidas failist andmed mugavalt kahem\u00f5\u00f5tmelisse j\u00e4rjendisse saada.<\/p>\n<p class=\"vspace\">Olgu n\u00e4iteks \u00f5pilaste saadud (t\u00e4isarvulised) punktid t\u00fchikutega eraldatult failis, igal real \u00fche \u00f5pilase punktid. N\u00e4iteks:<\/p>\n<div class=\"vspace\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">1 4 5\r\n3 6 8\r\n2 4 8\r\n10 5 0<\/pre>\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<\/div>\n<div>\n<p><strong> <code><\/p>\n<div id=\"h5p-11\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-11\" class=\"h5p-iframe\" data-content-id=\"11\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"2xts\u00fckkel-2-4-\u00fcksk\u00fcs\"><\/iframe><\/div>\n<\/div>\n<p><\/code> <\/strong><\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<p class=\"vspace\">Kahem\u00f5\u00f5tmelisse j\u00e4rjendisse saab need andmed n\u00e4iteks nii:<\/p>\n<div>\n<div class=\"syntaxhighlighter nogutter python\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-linenumbers=\"false\">punktide_tabel = []\r\n \r\nfor rida in fail:  # iga rea jaoks failist\r\n    op_punktid = []  # kogume \u00fche \u00f5pilase punkte\r\n    osad = rida.split() # t\u00fchikute kohalt osadeks\r\n    for osa in osad:  # osade kaupa\r\n        op_punktid.append(int(osa)) # j\u00e4rjekordsed punktid juurde\r\n \r\n    punktide_tabel.append(op_punktid) # \u00f5pilase punktide j\u00e4rjend juurde<\/pre>\n<div class=\"vspace\">\n<h3>Enesekontroll (1 k\u00fcsimus)<\/h3>\n<\/div>\n<div>\n<p><strong> <code><\/p>\n<div id=\"h5p-12\">\n<div class=\"h5p-iframe-wrapper\"><iframe id=\"h5p-iframe-12\" class=\"h5p-iframe\" data-content-id=\"12\" style=\"height:1px\" src=\"about:blank\" frameBorder=\"0\" scrolling=\"no\" title=\"2xts\u00fckkel-2-5-\u00fcksk\u00fcs\"><\/iframe><\/div>\n<\/div>\n<p><\/code> <\/strong><\/p>\n<h3>Eraldusm\u00e4rgid andmetes<\/h3>\n<\/div>\n<p>Eelmises n\u00e4ites olid \u00fchel real olevad andmed eraldatud t\u00fchikutega. Ajalooliselt on eraldajaks olnud n\u00e4iteks koma. Sellest tuleb ka levinud failiformaadi l\u00fchend CSV &#8211; <a class=\"urllink\" href=\"https:\/\/en.wikipedia.org\/wiki\/Comma-separated_values\" target=\"_blank\" rel=\"noopener noreferrer\">ingl <em>Comma-separated values<\/em><\/a>. Tegelikult ei pruugi koma alati h\u00e4sti eraldajaks sobida, kuna v\u00f5ib andmetes t\u00e4hendada midagi muud, n\u00e4iteks komadega arve. Levinumad eraldajad on tabulatsioonim\u00e4rk <code><code class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"\\t\"<\/code><\/code> ja semikoolon. Ka meie edasistes n\u00e4idetes on eraldajaks just semikoolon. CSV-failide kasutamisest r\u00e4\u00e4gime <a href=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/chapter\/lisalugemine-csv\/\">lisalugemise peat\u00fckis<\/a>.<\/p>\n<\/div>\n<\/div>\n","protected":false},"author":12,"menu_order":1,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-39","chapter","type-chapter","status-publish","hentry"],"part":26,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":4,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/39\/revisions"}],"predecessor-version":[{"id":226,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/39\/revisions\/226"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/parts\/26"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapters\/39\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/pressbooks\/v2\/chapter-type?post=39"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/contributor?post=39"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara\/wp-json\/wp\/v2\/license?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}