{"id":10560,"date":"2018-01-02T10:12:05","date_gmt":"2018-01-02T15:12:05","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=10560"},"modified":"2018-07-06T23:59:45","modified_gmt":"2018-07-07T03:59:45","slug":"3-tr-comments-and-quotes","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/3-tr-comments-and-quotes\/","title":{"rendered":"3: Yorumlar ve Metinler"},"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>Bir bilgisayar program\u0131 kod dili gibi g\u00f6r\u00fcnmelidir, \u00e7\u00fcnk\u00fc bu \u015fekilde komutlar\u0131m\u0131z\u0131 makine dili ile onun anlayaca\u011f\u0131 \u015fekilde vermi\u015f oluruz. Ama bir kod dilini insanlar\u0131n okuyup anlamas\u0131 zordur. Bu sorunu a\u015fmak i\u00e7in kodlarn aras\u0131na makinenin g\u00f6rmezden gelece\u011fi \u015fekilde notlar yazabiliriz. Bu notlara yorum denir:\u00a0<strong>comments<\/strong>.<\/p>\n<p>Python'da\u00a0<code>#<\/code> sembol\u00fcyle (\"pound sign\" veya \"hash\" ad\u0131 verilir) ba\u015flayan sat\u0131rlar yorum sat\u0131r\u0131d\u0131r. Bu i\u015faretle ba\u015flayan sat\u0131r makine taraf\u0131ndan kod olarak okunmaz. \u0130\u015fte bir \u00f6rnek:<\/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>Yorumun etkisi.<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'>\nprint(1) # Bu bir yorum\n# print(2)\nprint(3) # bu da ba\u015fka bir yorum @!#!@$<\/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<\/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=\"2c16c7da3d02f0550e482a420b959cc2\"\/>\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>\u0130kinci sat\u0131r\u00a0<code>#<\/code>\u00a0i\u015faretiyle ba\u015flad\u0131\u011f\u0131 i\u00e7in Python bu sat\u0131r\u0131 yok sayar ve g\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi print komutu verdi\u011fimiz h\u00e2lde\u00a0<code>2<\/code> yazd\u0131r\u0131lmad\u0131. Genelde yorumlar \u015funlar\u0131 i\u00e7erir:<\/p>\n<ul>\n<li>daha sonra bu program\u0131 okuyacaklar i\u00e7in, program\u0131n b\u00f6l\u00fcmleri hakk\u0131nda a\u00e7\u0131klay\u0131c\u0131 notlar;<\/li>\n<li>uzun bir program yazarken, daha sonra yap\u0131lmas\u0131 gerekenlerle ilgili notlar, yap\u0131lacaklar listesi;<\/li>\n<li>daha sonra tekrar programa eklemek \u00fczere, yaz\u0131lan kod sat\u0131r\u0131n\u0131n yorum sat\u0131r\u0131nda bekletilmesit (\"<em>commenting out<\/em>\").<\/li>\n<\/ul>\n<p>Burada bir al\u0131\u015ft\u0131rma yapal\u0131m. E\u011fer kod \u00fczerinde \u00e7ok fazla de\u011fi\u015fiklik yapt\u0131ktan sonra en ba\u015fa geri d\u00f6nmek isterseniz\u00a0<strong>Varsay\u0131lana D\u00f6n\u00a0<\/strong>d\u00fc\u011fmesine basarak program\u0131n ilk h\u00e2lini g\u00f6rebilirsiniz.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform1\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox1'>\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'>\u0130kinci Tahmin<\/span><\/div> Bu programdaki hatalar\u0131 ay\u0131klayarak (debug) bir haftadaki saniye say\u0131s\u0131n\u0131 yazd\u0131r\u0131n. <a class=\"hintlink\"  id=\"hintlink2\">\u0130pucu<\/a><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='usercode1' id='usercode1'  cols=10 rows=20   class='pyboxCode RW'>\n# ama\u00e7: bir haftada ka\u00e7 saniye oldu\u011funu yazd\u0131r\u0131n \ndakikadaSaniye = 60\nsaatteSaniye = dakikadaSaniye * 50 # yap\u0131lacak: kontrol et!\ng\u00fcndeSaniye = saatteSaniye * 24\nhaftadaG\u00fcn = 5\n# haftadaG\u00fcn = haftadaG\u00fcn + 2 # hafta sonlar\u0131 i\u015flem d\u0131\u015f\u0131 m\u0131!?\nprint(g\u00fcndeSaniye * haftadaG\u00fcn)\n<\/textarea><\/div>\n<div id='pbhistory1' class='flexcontain' style='display:none;'><\/div>\n<input type='hidden' id='defaultCode1' value='# ama\\u00e7: bir haftada ka\\u00e7 saniye oldu\\u011funu yazd\\u0131r\\u0131n \\ndakikadaSaniye = 60\\nsaatteSaniye = dakikadaSaniye * 50 # yap\\u0131lacak: kontrol et!\\ng\\u00fcndeSaniye = saatteSaniye * 24\\nhaftadaG\\u00fcn = 5\\n# haftadaG\\u00fcn = haftadaG\\u00fcn + 2 # hafta sonlar\\u0131 i\\u015flem d\\u0131\\u015f\\u0131 m\\u0131!?\\nprint(g\\u00fcndeSaniye * haftadaG\\u00fcn)\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit1' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(1,'3.debug')\" ><\/td>\n<td><input type='button' name='default' value=\"Reset code to default\" onclick=\"pbSetText(1,descape($('#defaultCode1').val()))\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(1);\" ><\/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=\"53a92b53a96a307b9617f7a42a7102fb\"\/>\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<h2>Stringler<\/h2>\n<p><strong>Stringler<\/strong>\u00a0harf ve rakam dizilerinden olu\u015fur, ba\u015fka bir deyi\u015fle string bir metin par\u00e7as\u0131d\u0131r.\u00a0 Her zaman t\u0131rnak i\u015faretleri i\u00e7inde yaz\u0131l\u0131r: \u00f6rne\u011fin\u00a0<a href=\"\/\">ilk dersteki<\/a>\u00a0<code>\"Selam, D\u00fcnya!\"<\/code>\u00a0b\u00f6l\u00fcm\u00fc bir stringdi. Pound i\u015fareti\u00a0<code>#<\/code>\u00a0bir string i\u00e7erisinde kullan\u0131ld\u0131\u011f\u0131nda yorum olarak kabul edilmez ve yok say\u0131lmaz:<br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox3'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div><code>#<\/code>\u00a0 i\u015faretini i\u00e7eren bir string.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode3' id='usercode3'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nbuStr = \"Mesaj b\u0131rakmak i\u00e7in telefonunuzda  #  tu\u015funa bas\u0131n\u0131z.\"\nprint(byStr)<\/textarea><\/div>\n<div id='pbhistory3' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit3' value=' '\/><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse3\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"3\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"b6aa79bcb1b456fe65220d6d32dd25aa\"\/>\n<div id='pbresults3' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit3\").value = \"Run program\";document.getElementById(\"inputInUse3\").value = \"N\";<\/script>\n<\/p>\n<p>T\u0131rnak i\u015faretleri i\u00e7erisine yaz\u0131lan her \u015fey string i\u00e7eri\u011fidir, bu sebeple de komut olarak de\u011fil metin i\u00e7eri\u011fi olarak kabul edilir. Benzer olarak\u00a0<code>print(\"3 + 4\")<\/code>\u00a0 komut sat\u0131r\u0131 7 say\u0131s\u0131n\u0131 yazd\u0131rmaz;\u00a0\u00a0<code>3 + 4<\/code>\u00a0yazd\u0131r\u0131r, \u00e7\u00fcnk\u00fc bu metin i\u00e7eri\u011fidir, komut de\u011fildir.<\/p>\n<h2>Ka\u00e7\u0131\u015f Dizileri<\/h2>\n<p>E\u011fer string yazarken t\u0131rnak i\u015faretleri i\u00e7inde tekrar t\u0131rnak\u00a0<code>\"<\/code> kullanmam\u0131z gerekirse? Komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda\u00a0<code><\/code><code>print(\"Ona \"Yok art\u0131k!\" dedim\")<\/code>\u00a0burada <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28%22I%20said%20%22Wow%21%22%20to%20him.%22%29\" target=\"_blank\">hata olu\u015fur<\/a>: problem \u015fu ki\u00a0 Python\u00a0<code>\"Ona \"<\/code>\u00a0 stringini ve devam\u0131nda\u00a0<code>Yok art\u0131k!<\/code>\u00a0gibi string olmayan bir \u015fey g\u00f6r\u00fcr. Ama yapmak istedi\u011fimiz bu de\u011fildi!<\/p>\n<p>Python'da string i\u00e7inde t\u0131rnak i\u015faretleri kullanmak i\u00e7in iki basit yol vard\u0131r.<\/p>\n<ul>\n<li>E\u011fer stringi tek t\u0131rnak (kesme i\u015fareti, apostrof dedi\u011fimiz) i\u015faretleri aras\u0131na yazarsan\u0131z,\u00a0<code>'neden olmas\u0131n' gibi, stringin i\u00e7inde t\u0131rnak i\u015faretleri kullanabilirsiniz<\/code>. <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28%27I%20said%20%22Wow%21%22%20to%20him.%27%29\" target=\"_blank\"><code>'Ona \"Yok art\u0131k!\" dedim.'<\/code><\/a><\/li>\n<li>T\u0131rnak i\u015faretlerinin \u00f6ncesinde ters taksim i\u015fareti (backslash) koyabiliriz (<code>\\\"<\/code> or <code>\\'<\/code>). Buna <em>ka\u00e7\u0131\u015f dizisi<\/em> (<em>escape sequence)<\/em>\u00a0ad\u0131 verilir. Python taksim i\u015faretini siler ve string i\u00e7indeki t\u0131rnak i\u015faretini kullan\u0131r. Bir \u00f6rnek verelim.<br \/>\n<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>Ters taksim t\u0131rnak \u015faretlerini korur ama yazd\u0131r\u0131lan \u00e7\u0131kt\u0131da yer almaz.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode4' id='usercode4'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nprint('Bu string\\'deki kesme i\u015faretinden ka\u00e7\u0131\u015f')\nprint(\"Bu bir \\\"ka\u00e7\u0131\u015ft\u0131r\\\" iki t\u0131rnaktan ka\u00e7\u0131\u015f\")<\/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<\/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=\"510a667c0333c948c8d650ba20c84303\"\/>\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<\/li>\n<\/ul>\n<p>Ayr\u0131ca, ka\u00e7\u0131\u015f dizileri sebebiyle ters taksim (<code>\\<\/code>) \u00f6zel bir karakterdir. Bir stringin i\u00e7inde ters taksim i\u015fareti yazmak istiyorsak, ikinci bir ters taksimle ka\u00e7\u0131\u015f\u0131 ger\u00e7ekle\u015ftirmeliyiz; bir di\u011fer deyi\u015fle stringin i\u00e7inde yanyana iki i\u015faret\u00a0<code>\\\\<\/code>\u00a0 yazmal\u0131y\u0131z.<\/p>\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'>Multiple Choice Exercise: <\/span><span class='title'>Ka\u00e7\u0131\u015f Dizileri<\/span><\/div><div>Nas\u0131l bir \u00e7\u0131kt\u0131 yazd\u0131racak<code>(\"Ters taksimler \\\\ ve kesme i\u015faretleri \\' ve de t\u0131rnak i\u015faretleri \\\" ayr\u0131ca pound i\u015faretleri # harika!\")<\/code><\/div><label>Your choice: <\/label><select id=\"pyselect5\"><option value=\"d\" selected>Select one<\/option><option value=\"w\"> and pound signs<\/option><option value=\"r\">Backslashes \\ and single quotes ' and double quotes \" and pound signs # are awesome!\n<\/option><option value=\"w\">Causes an error<\/option><option value=\"w\">Backslashes \\\\ and single quotes \\' and double quotes \\\" and pound signs # are awesome!<\/option><\/select><div class='pyboxbuttons'><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"3.escapemulti\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick='pbMultiCheck(5)'\/><\/div><div class=\"pbresults\" id=\"pyMultiResults5\"><\/div><div class=\"epilogue\">Correct!<\/div><\/div>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform6\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox6'>\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'>B\u00fcy\u00fck ka\u00e7\u0131\u015f<\/span><\/div>A\u015fa\u011f\u0131daki c\u00fcmleyi yazd\u0131racak bir bir program yaz\u0131n: <\/p>\n<pre>T\u0131rnak i\u015fareti ters taksim kullanarak ka\u00e7t\u0131, \u015f\u00f6yle \\\"<\/pre> Not: Bunu yapmak i\u00e7in birden faza yol var (her zamanki gibi)! \u00d6rne\u011fin, stringi kesme i\u015faretleri aras\u0131na yazabilirdiniz. Her h\u00e2luk\u00e2rda ka\u00e7\u0131\u015f gerekli. Daha fazla pratik i\u00e7in program\u0131 her iki yolla da \u00e7\u00f6zmeyi deneyin. Bunu \u00e7\u00f6zmek i\u00e7in\u00a0 <a class=\"hintlink\"  id=\"hintlink7\">\u00fc\u00e7\u00fcnc\u00fc bir yol bulabilir misiniz??<\/a><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='usercode6' id='usercode6'  cols=10 rows=20   class='pyboxCode RW'>\n<\/textarea><\/div>\n<div id='pbhistory6' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit6' value=' '\/><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(6,'3.escape')\" ><\/td>\n<td><input type='button' name='help' value=\"Help\" onclick=\"helpClick(6);\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse6\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"6\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"d86bcde726b820c481bfff79dea864e0\"\/>\n<div id='pbresults6' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit6\").value = \"Run program\";document.getElementById(\"inputInUse6\").value = \"N\";<\/script>\n<\/p>\n<p>Ba\u015fka ka\u00e7\u0131\u015f dizileri de var, mesela \"sat\u0131r ba\u015f\u0131\", ama bunu \u015fimdi \u00f6\u011frenmeyece\u011fiz. \u015eimdilik isterseniz bir sonraki derse ge\u00e7ebiliriz!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bir bilgisayar program\u0131 kod dili gibi g\u00f6r\u00fcnmelidir, \u00e7\u00fcnk\u00fc bu \u015fekilde komutlar\u0131m\u0131z\u0131 makine dili ile onun anlayaca\u011f\u0131 \u015fekilde vermi\u015f oluruz. Ama bir kod dilini insanlar\u0131n okuyup anlamas\u0131 zordur. Bu sorunu a\u015fmak i\u00e7in kodlarn aras\u0131na makinenin g\u00f6rmezden gelece\u011fi \u015fekilde notlar yazabiliriz. Bu &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/3-tr-comments-and-quotes\/\">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-10560","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10560","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=10560"}],"version-history":[{"count":9,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10560\/revisions"}],"predecessor-version":[{"id":11020,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/10560\/revisions\/11020"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=10560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}