{"id":10643,"date":"2018-01-22T02:45:53","date_gmt":"2018-01-22T07:45:53","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=10643"},"modified":"2018-07-06T23:59:55","modified_gmt":"2018-07-07T03:59:55","slug":"4-tr-types","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/4-tr-types\/","title":{"rendered":"4: Tipler"},"content":{"rendered":"<!-- Please retain this notice and add more notes if you create a new version.<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>Bu dersten ba\u015flayarak, \u00f6rnekler ve kod input kutular\u0131n\u0131n d\u00fc\u011fmeleri<\/em>\u00a0<strong>Konsolda a\u00e7<\/strong>\u00a0<em>ve<\/em> <strong>G\u00f6r\u00fcnt\u00fcle<\/strong>\u00a0<em>olarak etiketlendi. Bunlar\u0131 hatalar\u0131 ay\u0131klamak ve kodu incelemek i\u00e7in kullanabilirsiniz.<\/em><\/p>\n<p><a href=\"\/\">Merhaba, D\u00fcnya! program\u0131nda<\/a>\u00a0Python'un bize bir c\u00fcmleyi tekrar getirdi\u011fini g\u00f6rd\u00fck. Ayr\u0131ca rakamlarla hesaplama \u00f6rnekleri g\u00f6rd\u00fck. Rakamlar ve c\u00fcmleler temelde farkl\u0131 nesneler oldu\u011fu i\u00e7in bunlar\u0131 yanl\u0131\u015f yoldan birle\u015ftirmeye kalkarsak Python hata verir.<\/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>Bir rakamla bir metni kar\u015f\u0131la\u015ft\u0131ral\u0131m.<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 = \"Merhaba, D\u00fcnya!\"\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=\"aaea24ed2d2fd8d728def1ed73824091\"\/>\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>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, iki farkl\u0131 tipten verinin en y\u00fcksek (max) olan\u0131n\u0131 s\u00f6ylemek bir hataya yol a\u00e7t\u0131.\u00a0Bu hata dersin devam\u0131 i\u00e7in g\u00fczel bir giri\u015f oldu:<\/p>\n<ul>\n<li><code>\"Merhaba, D\u00fcnya!\"<\/code>\u00a0bir\u00a0<strong>string<\/strong> de\u011feridir ve Python'da\u00a0<code>str<\/code> olarak g\u00f6sterilir. Bir string rakamlar, harfler ve noktalama i\u015faretlerini i\u00e7erebilen bir dizidir; stringleri 7A dersinde \u00f6\u011frenece\u011fiz.<\/li>\n<li><code>35<\/code> ise bir\u00a0<strong>integer<\/strong> de\u011feridir ve\u00a0Python'da\u00a0<code>int<\/code> olarak g\u00f6sterilir. Bir integer sadece rakamlardan olu\u015fur, mesela\u00a042, -12, ve 0 integerdir.<\/li>\n<\/ul>\n<p>Yanl\u0131\u015f tipten bir nesne kullanmak programda hatalara sebep olabilir. Bu bir sandvi\u00e7i i\u00e7meye \u00e7al\u0131\u015fmak gibidir: Bunu yapamay\u0131z \u00e7\u00fcnk\u00fc sadece s\u0131v\u0131 \u015feyler i\u00e7ilebilir ve sandvi\u00e7 kat\u0131 bir \u015feydir.<\/p>\n<p>Bir nesnenin tipini \u00f6\u011frenmek i\u00e7in <code>type<\/code> fonksiyonu kullan\u0131l\u0131r.<\/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>Baz\u0131 tip \u00f6rnekleri.<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(\"Merhaba, D\u00fcnya!\"))\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=\"480175193804d8d5a0b820f631b6bba8\"\/>\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>(<code>class<\/code> ve\u00a0<code>type<\/code>\u00a0kelimelerinin anlamlar\u0131 benzerdir.) Yukar\u0131daki \u00f6rneklerden g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi iki farkl\u0131 tiptedir;\u00a0\u00a0<code>int<\/code>\u00a0tipinden bahsetmi\u015ftik, <code>float<\/code>\u00a0ise ondal\u0131k say\u0131lar\u0131 i\u00e7eren tiptir.\u00a0<code>float<\/code>\u00a0 tam olmayan veya yakla\u015f\u0131k de\u011ferleri ta\u015f\u0131r (bunu 7B dersinde daha detayl\u0131 g\u00f6rece\u011fiz).\u00a0 Genellikle\u00a0<code>float<\/code> de\u011ferleri <code>int<\/code> de\u011ferlerle kar\u0131\u015ft\u0131rabilirz ve sonu\u00e7 bir\u00a0<code>float<\/code>\u00a0olacakt\u0131r.<\/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>Bir int ve bir float\u0131 kar\u0131\u015ft\u0131ral\u0131m.<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>Asl\u0131nda, bir\u00a0\u00a0<code>float<\/code>\u00a0ve bir\u00a0<code>int<\/code>\u00a0kar\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, Python\u00a0<code>int<\/code>\u00a0de\u011ferini de\u011fi\u015ftirip\u00a0<code>float<\/code>\u00a0h\u00e2line getirir ve sonra da iki\u00a0<code>float<\/code>\u00a0ile i\u015flem yapar.<\/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'>Float yapma<\/span><\/div><div><\/div><label>Your choice: <\/label><select id=\"pyselect3\"><option value=\"d\" selected>Select one<\/option><option value=\"r\"><\/option><option value=\"w\"><\/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\">Do\u011fru! Burada iki \u015feyi a\u00e7\u0131klamal\u0131y\u0131z, neden <code>z<\/code><code>3.0<\/code> olarak yaz\u0131ld\u0131:\n\n<ul>\n \t\n<li><code>x * y<\/code> i\u015flemiyle bir <code>int<\/code> ve bir <code>float<\/code> var, Python bunlar\u0131 <code>float<\/code> olarak g\u00f6r\u00fcr ve <code>z<\/code> de bir <code>float<\/code> olur.<\/li>\n\n \t\n<li><code>z<\/code> de\u011fi\u015fkeninin de\u011feri 1.5 kere 2, yani 3<\/div><\/div>\n<p>Nesnelerin tiplerini de\u011fi\u015ftirirken farkl\u0131 sonu\u00e7lar al\u0131r\u0131z:<\/p>\n<ul>\n<li>Bir\u00a0<code>float<\/code>\u00a0de\u011ferini\u00a0<code>int<\/code>\u00a0de\u011ferine de\u011fi\u015ftirmekle virg\u00fclden sonraki ondal\u0131k silinir, mesela\u00a0<code>int(1.234)\u00a0<\/code><code>1<\/code>,\u00a0<code>int(-34.7)\u00a0<\/code><code>-34 h\u00e2line gelir<\/code>.<\/li>\n<li>Bir\u00a0<code>str<\/code> de\u011feri bir\u00a0<code>int<\/code>\u00a0de\u011ferine d\u00f6n\u00fc\u015ft\u00fcrmek e\u011fer string tam bir integer \u015feklinde de\u011filse, mesela <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> hataya yol a\u00e7ar<\/a>.<\/li>\n<li>Bir\u00a0<code>str<\/code> de\u011feri bir\u00a0<code>float<\/code>\u00a0de\u011ferine de\u011fi\u015ftirmek, e\u011fer string rakamlardan olu\u015fmuyorsa, mesela <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=x%20%3D%20float%28%22sandvi%C3%A7%22%29\" target=\"_blank\"><code>float(\"sandvi\u00e7\")<\/code>\u00a0hataya yol a\u00e7ar<\/a>.<\/li>\n<\/ul>\n<p>Genelde string \u015feklinde olan kullan\u0131c\u0131 inputlar\u0131n\u0131 rakamsal forma d\u00f6n\u00fc\u015ft\u00fcrmek tip atama fonksiyonun s\u0131k kullan\u0131ld\u0131\u011f\u0131 bir durumdur. Bunu da yak\u0131nda g\u00f6rece\u011fiz. Burada k\u00fc\u00e7\u00fck bir \u00f6rneklendirme yapal\u0131m.<\/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=\"title\">Example<\/span><\/div>Tip atama \u00f6rne\u011fi.<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=\"c7f8b39cee9546a0c8c059ff52a0e7cf\"\/>\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>Dersi son bir \u00f6rnekle bitirelim.<\/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> \u015eimdi \u00e7ok fazla edit\u00f6r komutu oldu\u011fundan, bir k\u0131sm\u0131 <strong>Di\u011fer i\u015flemler... <\/strong>adl\u0131 men\u00fcye ta\u015f\u0131nd\u0131. <\/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'>Lezzetli Tip Atama<\/span><\/div><em>Kare pizzalar<\/em> hakk\u0131nda matematik i\u015flemi yapan arkada\u015flar\u0131n\u0131za yard\u0131m edecek bir program yaz\u0131n.\u00a0Pizzan\u0131n kenar uzunlu\u011fu, ondal\u0131k say\u0131 \u015feklinde <em>L<\/em> olsun,\u00a0 d\u00fczenleyici bizim i\u00e7in bir string de\u011fi\u015fkeni tan\u0131mlayacak:\u00a0<code>inputStr<\/code>\u00a0.\u00a0Pizzan\u0131n alan\u0131n\u0131\u00a0\u00a0<em>A = L*L\u00a0<\/em>form\u00fcl\u00fc ile hesaplayaca\u011f\u0131z. Diyelim ki her pizza 100 cm<sup>2 <\/sup>\u00a0olsun, toplam pizza alan\u0131n\u0131 pizza say\u0131s\u0131n\u0131 en yak\u0131n say\u0131ya yuvarlayarak hesaplayal\u0131m.\u00a0<a class=\"hintlink\"  id=\"hintlink6\">\u0130pucu<\/a> <\/p>\n<div><em>\u00d6rnek<\/em>: <code>inputStr<\/code> <code>\"17.5\"<\/code>\u00a0oldu\u011funda toplam pizza alan\u0131 306.25 cm<sup>2 <\/sup>, pizza say\u0131s\u0131 da\u00a0<code>3 olacakt\u0131r<\/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=\"cbce2b14dfe24f7a46317934738b66bb\"\/>\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>Bitirdiyseniz, sonraki derse ge\u00e7ebiliriz.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu dersten ba\u015flayarak, \u00f6rnekler ve kod input kutular\u0131n\u0131n d\u00fc\u011fmeleri\u00a0Konsolda a\u00e7\u00a0ve G\u00f6r\u00fcnt\u00fcle\u00a0olarak etiketlendi. Bunlar\u0131 hatalar\u0131 ay\u0131klamak ve kodu incelemek i\u00e7in kullanabilirsiniz. Merhaba, D\u00fcnya! program\u0131nda\u00a0Python'un bize bir c\u00fcmleyi tekrar getirdi\u011fini g\u00f6rd\u00fck. Ayr\u0131ca rakamlarla hesaplama \u00f6rnekleri g\u00f6rd\u00fck. Rakamlar ve c\u00fcmleler temelde farkl\u0131 nesneler &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/4-tr-types\/\">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":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10643","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10643","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=10643"}],"version-history":[{"count":19,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10643\/revisions"}],"predecessor-version":[{"id":11021,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10643\/revisions\/11021"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=10643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}