{"id":9985,"date":"2017-05-18T02:09:38","date_gmt":"2017-05-18T06:09:38","guid":{"rendered":"https:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=9985"},"modified":"2017-07-12T16:52:02","modified_gmt":"2017-07-12T20:52:02","slug":"12-pl","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/12-pl\/","title":{"rendered":"12: Rady"},"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>Ta lekcja zawiera kilka fakt\u00f3w, dotycz\u0105cych j\u0119zyka Python, kt\u00f3re nie  by\u0142y uwzgl\u0119dnione we wcze\u015bniejszych lekcjach.<\/p>\n<h2>Opcje <code>print<\/code><\/h2>\n<p>Do tej pory, jedynym sposobem na zobaczenie wydruku, by\u0142o u\u017cycie funkcji <code>print()<\/code>, kt\u00f3ra mo\u017ce drukowa\u0107 w jednej lini kilka pozycji oddzielonych spacjami. W rzeczywisto\u015bci, <code>print()<\/code> akceptuje <em>argumenty z kilkoma s\u0142owami kluczowymi<\/em>, kt\u00f3re pozwalaj\u0105, w zale\u017cno\u015bci od potrzeb, modyfikowa\u0107 to zachowanie.<\/p>\n<ul>\n<li>Aby zmieni\u0107 separator spacj\u0119 na inny \u0142a\u0144cuch <code>S<\/code>, nale\u017cy poda\u0107 argument <code>sep = \u00abS\u00bb<\/code><\/li>\n<li>Aby zast\u0105pi\u0107 znak \"end-of-line\" (koniec wiersza) innym \u0142a\u0144cuchem <code>S<\/code>, nale\u017cy do\u0142\u0105czy\u0107 argument <code>end = \u00abS\u00bb<\/code><\/li>\n<\/ul>\n<p>T\u0105 now\u0105 mo\u017cliwo\u015b\u0107, <em>s\u0142\u00f3w kluczowych argument\u00f3w<\/em>,  naj\u0142atwiej przedstawi\u0107 poprzez kilka przyk\u0142ad\u00f3w.<\/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>Przyk\u0142ady z <code>sep<\/code> i <code>end<\/code>. Sprawd\u017a wp\u0142yw ka\u017cdego przy wywo\u0142aniu <code>print<\/code>.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode0' id='usercode0'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\nprint('D', 'A', 'S', 'H', sep='-')\nprint('The price is $', 12*5, sep='')\nprint('Dwie linie', end='')\nprint(' pojawi\u0105 si\u0119 razem.')\nprint('Dobrze', end='!')<\/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=\"6bac5187e29e0bb42ad5a436380d76a1\"\/>\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>Te s\u0142owa kluczowe argument\u00f3w musz\u0105 by\u0107 podane na ko\u0144cu listy argument\u00f3w albo wyst\u0105pi <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28end%3D%27%27%2C%205%29\" target=\"_blank\">error<\/a>. Je\u015bli u\u017cywasz obu, mo\u017cesz je poda\u0107 w dowolnej kolejno\u015bci.<\/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'>Aerobik Alfabetyczny<\/span><\/div>U\u017cywaj\u0105c tego, co w\u0142a\u015bnie wprowadzili\u015bmy, debugujemy poni\u017cszy program, otrzymujemy alfabet wielkich liter <em>w jednej linii<\/em>.<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'>\nfor c in range(0, 26):\n print(chr(ord('A')+c))\n<\/textarea><\/div>\n<div id='pbhistory1' class='flexcontain' style='display:none;'><\/div>\n<input type='hidden' id='defaultCode1' value='for c in range(0, 26):\\n print(chr(ord(\\u0027A\\u0027)+c))\\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='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(1)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(1,'N')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(1,'12.alphabet')\" ><\/td>\n<\/tr><\/table><select id='pbSelect1' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='default' data-pbonclick=\"pbSetText(1,descape($('#defaultCode1').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(1);\" >Help<\/option>\n<\/select><\/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=\"9a223d7d5ac81ae2504a5aef1399c58e\"\/>\n<div id='pbresults1' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(1);});document.getElementById(\"submit1\").value = \"Run program\";document.getElementById(\"inputInUse1\").value = \"N\";<\/script>\n<\/p>\n<h2>Poprawne Nazwy Zmiennej\/Funkcji<\/h2>\n<ul>\n<li>Nazwy mog\u0105 zawiera\u0107 litery, cyfry i znak podkre\u015blenia (<code>_<\/code>).<\/li>\n<li>Pierwszy znak w ka\u017cdej nazwie musi by\u0107 liter\u0105.<\/li>\n<li>Python odr\u00f3\u017cnia du\u017ce i ma\u0142e litery.<\/li>\n<\/ul>\n<p>Zatem <code>my_3rd_int<\/code> jest prawid\u0142ow\u0105 nazw\u0105 zmiennej, ale <code>3rd_int<\/code> nie.<\/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>Przyk\u0142ad na rozr\u00f3\u017cnianie du\u017cych i ma\u0142ych liter.<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 84px;'><textarea wrap='off' name='usercode2' id='usercode2'  cols=10 rows=3 readonly='readonly'  style = 'height : 84px;'  class='pyboxCode RO'>\ngreaterOde = \"Truth is beauty, beauty truth\"\ngreatErode = \"Wind erosion\"\nprint(greaterOde) # still poetry<\/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=\"045208e9dc7dd2820a91bab0e459ef7b\"\/>\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<h2>Malej\u0105ce p\u0119tle <code>for<\/code> &amp;  inne gradacje<\/h2>\n<p>Przypomnijmy, \u017ce pokazali\u015bmy, jak p\u0119tle <code>for<\/code> iteruj\u0105 rosn\u0105co po liczbach:<\/p>\n<p><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>A <code>for<\/code> loop<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'>\nfor i in range(0, 5):\n print(i)<\/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<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(3)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(3,'N')\" ><\/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=\"48e0123a12ad2574217df6c6fcebe640\"\/>\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>Cz\u0119sto istnieje potrzeba u\u017cycia p\u0119tli <code>for<\/code>, kt\u00f3ra przechodzi przez numery w kolejno\u015bci <em>malej\u0105cej<\/em> (od najwi\u0119kszej do najmniejszej). W tym celu w <code>range<\/code> stosujemy trzeci argumentem nazywany <em>step<\/em> (krokiem):<\/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>Negative step for <code>range<\/code><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'>\nfor i in range(5, 1, -1):\n print(i)<\/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=\"61f7b1cfa7128b1075811c3bc806df3a\"\/>\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>Kiedy my\u015blisz o zapisie  <code>range(0, 5)<\/code>, to jest on taki sam jak <code>range(0, 5, 1)<\/code>: <em>domy\u015blny przyrost<\/em> wynosi 1. W obu przypadkach nale\u017cy pami\u0119ta\u0107, \u017ce <code>range(start, stop, step)<\/code> ko\u0144czy dzia\u0142anie tu\u017c <em>przed<\/em> osi\u0105gni\u0119ciem limitu warto\u015bci <code>stop<\/code>. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w podr\u0119czniku <a href=\"http:\/\/docs.python.org\/py3k\/library\/functions.html#range\">Python manual<\/a>.<\/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'>Szcz\u0119\u015bliwe Siudemki<\/span><\/div>Napisz program za pomoc\u0105 p\u0119tli <code>for<\/code> z krokiem 10, aby wydrukowa\u0107 wszystkie 2-cyfrowe liczby, kt\u00f3re ko\u0144cz\u0105 si\u0119 7 w kolejno\u015bci rosn\u0105cej.<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,'N')\" ><\/td>\n<td><input type='button' name='history' value=\"History\" onclick=\"historyClick(5,'12.sevens')\" ><\/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=\"9e66348a78a7fce2757d1f42d6ff802f\"\/>\n<div id='pbresults5' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>jQuery(function(){pbToggleCodeMirror(5);});document.getElementById(\"submit5\").value = \"Run program\";document.getElementById(\"inputInUse5\").value = \"N\";<\/script>\n<\/p>\n<p>Podobnie mo\u017cna u\u017cy\u0107 <code>string[x:y:2]<\/code>, aby uzyska\u0107 \u0142a\u0144cuch znak\u00f3w <code>x, x+2, x+4, ...<\/code> lub <code>string[y:x:-1]<\/code>, aby uzyska\u0107 odwr\u00f3con\u0105 cz\u0119\u015b\u0107 \u0142a\u0144cucha (gdzie <code>y<\/code> &gt; <code>x<\/code>).<\/p>\n<p>Po p\u0119tli <code>for<\/code>, kolejnym sposobem na osi\u0105gni\u0119cie zmniejszaj\u0105cego si\u0119 zakresu jest <code>reversed(range(x, y))<\/code>, kt\u00f3ry zmienia si\u0119 od <code>y-1<\/code> do <code>x<\/code> w porz\u0105dku malej\u0105cym.<\/p>\n<h2>Pisanie Kr\u00f3tszego Kodu<\/h2>\n<p>Python daje mozliwo\u015b\u0107 zapisu kr\u00f3tszego kodu na kilka sposob\u00f3w; wprowadzimy kilka z nich tutaj.<\/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> Na tej stronie internetowej nie zawsze b\u0119dziemy korzysta\u0107 z tych mo\u017cliwo\u015bci, poniewa\u017c u\u017cycie ich czasami sprawia, \u017ce kod jest trudniejszy do przeczytania. <\/span><\/td><\/table><\/p>\n<h3>Operatory Przypisania<\/h3>\n<p>Python pozwala na zapis \"<code>x += 1<\/code>\", kt\u00f3ry oznacza \"doda\u0107 jeden do <code>x<\/code>\". Jest to wi\u0119c r\u00f3wnowa\u017cne zapisowi \"<code>x = x + 1<\/code>\", jak pokazano poni\u017cej:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform6\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox6'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Examples of <code>+=<\/code>, <code>-=<\/code>, <code>*=<\/code>, <code>\/=<\/code><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 240px;'><textarea wrap='off' name='usercode6' id='usercode6'  cols=10 rows=9 readonly='readonly'  style = 'height : 240px;'  class='pyboxCode RO'>\nx = 8\nx += 2\nprint(x)\nx -= 1\nprint(x)\nx \/= 3\nprint(x)\nx *= 10\nprint(x)<\/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='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(6)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(6,'N')\" ><\/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=\"657dbfafceda6ebf4bb45614201a5a12\"\/>\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>Podobnie jest dla operator\u00f3w  dzielenia ca\u0142kowitego (<code>\/\/=<\/code>), modulo (<code>%=<\/code>), pot\u0119gowania (<code>**=<\/code>).<\/p>\n<h3>Bloki Wewn\u0105trzliniowe<\/h3>\n<p>Widzieli\u015bmy ju\u017c kilka instrukcji, po kt\u00f3rych nast\u0119puje wci\u0119cie \"blok\u00f3w\" kodu: <code>for<\/code>, <code>if<\/code>, <code>else<\/code>, <code>elif<\/code>, <code>while<\/code> i <code>def<\/code>, na przyk\u0142ad:<\/p>\n<pre>if x==y:\r\n  \u00abblock\u00bb #indented, multiline<\/pre>W szczeg\u00f3lnym przypadku, gdy <code>\u00abblock\u00bb<\/code> jest tylko jedn\u0105 linijk\u0105, Python umo\u017cliwia nast\u0119puj\u0105c\u0105 alternatywn\u0105 sk\u0142adni\u0119:<\/p>\n<pre>if x==y: \u00abblock\u00bb #single line<\/pre>Oto przyk\u0142ad:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform7\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox7'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Instrukcje w bloku wewn\u0105trzliniowym<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode7' id='usercode7'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\ndef square(x): return x*x\nfor i in range(0, 6): print(square(i))<\/textarea><\/div>\n<div id='pbhistory7' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit7' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(7)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(7,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse7\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"7\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"b3ade191aee4175bf56777c569c34c2f\"\/>\n<div id='pbresults7' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit7\").value = \"Run program\";document.getElementById(\"inputInUse7\").value = \"N\";<\/script>\n<\/p>\n<p>Ma to jednak swoje granice: blok z\u0142o\u017cony z podw\u00f3jnych (<code>if<\/code>, <code>for<\/code>, etc) nie mo\u017ce by\u0107 u\u017cywany jako blok wewn\u0105trzliniowy. Na przyk\u0142ad <code>if 2&gt;1: if 4&gt;3: print()<\/code>  spowoduje syntax <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=if%202%26gt%3B1%3A%20if%204%26gt%3B3%3A%20print%28%29\" target=\"_blank\">error<\/a> (b\u0142\u0105d sk\u0142adni).<\/p>\n<h3>Wielokrotne Przypisanie<\/h3>\n<p>Python umo\u017cliwia \u0142\u0105czenie w jedn\u0105 dw\u00f3ch instrukcji przypisania:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform8\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox8'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Wielokrotne przypisanie<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode8' id='usercode8'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nx, y = 3, 4\nprint('x =', x, 'and y =', y)<\/textarea><\/div>\n<div id='pbhistory8' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit8' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(8)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(8,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse8\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"8\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"4c8e080f4888bb5c86d52fe2d2145597\"\/>\n<div id='pbresults8' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit8\").value = \"Run program\";document.getElementById(\"inputInUse8\").value = \"N\";<\/script>\n<\/p>\n<p>Zauwa\u017c, \u017ce pozwala to rozwi\u0105za\u0107 nasze <a href=\"\/pl-1-variables\/\">\u0107wiczenia wymiany<\/a>, u\u017cywaj\u0105c tylko jednej linii!<\/p>\n<h3>\u0141a\u0144cuch Por\u00f3wna\u0144<\/h3>\n<p>Python umo\u017cliwia r\u00f3wnie\u017c \u0142\u0105czenie kilku por\u00f3wna\u0144 w jedno:<br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform9\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox9'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>\u0141a\u0144cuch por\u00f3wna\u0144<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 84px;'><textarea wrap='off' name='usercode9' id='usercode9'  cols=10 rows=3 readonly='readonly'  style = 'height : 84px;'  class='pyboxCode RO'>\nage = int(input())\nif 12 &lt; age &lt; 20: # to jest to samo co: (12 &lt; age) and (age &lt; 20) \n print('Jeste\u015b nastolatkiem!')<\/textarea><\/div>\n<div id='pbhistory9' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit9' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(9)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(9,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse9\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"9\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"5ad52ef0e22216d1d921cb30a9c3588e\"\/>\n<div id='pbresults9' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit9\").value = \"Run program\";document.getElementById(\"inputInUse9\").value = \"N\";<\/script>\nPewien ci\u0105g <code>v1 c1 v2 c2 v3 ...<\/code>, gdzie  <code>v<\/code> s\u0105 warto\u015bciami a <code>c<\/code> s\u0105 por\u00f3wnaniami, jest taki sam jak <code>(v1 c1 v2) and (v2 c2 v3) and...<\/code><\/p>\n<h3>Domy\u015blne Warto\u015bci dla <code>[:]<\/code> i <code>range()<\/code><\/h3>\n<p>Gdy korzystasz z operatora pod\u0142a\u0144cucha <code>[:]<\/code>, mo\u017cesz pomin\u0105\u0107 jedn\u0105 lub obydwie warto\u015bci pocz\u0105tkow\u0105\/ko\u0144cow\u0105 [:]. (Zobaczymy w nast\u0119pnej lekcji, \u017ce dotyczy to r\u00f3wnie\u017c list.) Domy\u015bln\u0105 warto\u015bci\u0105 pierwszego indeksu jest <code>0<\/code> (pocz\u0105tek \u0142a\u0144cucha), a domy\u015bln\u0105 warto\u015bci\u0105 ostatniego indeksu jest d\u0142ugo\u015b\u0107 \u0142a\u0144cucha. Podobnie <code>range(n)<\/code> jest kr\u00f3tk\u0105 form\u0105 <code>range(0, n)<\/code>.<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform10\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox10'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>U\u017cycie domy\u015blnych warto\u015bci dla <code>[:]<\/code> i <code>range()<\/code><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 110px;'><textarea wrap='off' name='usercode10' id='usercode10'  cols=10 rows=4 readonly='readonly'  style = 'height : 110px;'  class='pyboxCode RO'>\nS = \"Toronto\"\nprint(S[3:])                  # right substring, \"onto\"\nprint(S[:2])                  # left substring, \"To\"\nfor i in range(5): print(i*i) # prints 0, 1, .. 16<\/textarea><\/div>\n<div id='pbhistory10' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit10' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(10)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(10,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse10\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"10\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"e91aa3e67182433fea837df28b7dfeaa\"\/>\n<div id='pbresults10' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit10\").value = \"Run program\";document.getElementById(\"inputInUse10\").value = \"N\";<\/script>\n<\/p>\n<h1><code>None<\/code><\/h1>\n<p>Niekt\u00f3re funkcje zwracaj\u0105 warto\u015b\u0107 jako g\u0142\u00f3wny efekt, np. <code>abs(x)<\/code>. Ale inne funkcje, takie jak <code>print()<\/code>, jednak zwracaj\u0105 'default' value <code>None<\/code>:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform11\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox11'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>Warto\u015b\u0107 <code>print<\/code><div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 136px;'><textarea wrap='off' name='usercode11' id='usercode11'  cols=10 rows=5 readonly='readonly'  style = 'height : 136px;'  class='pyboxCode RO'>\nresult = print('Anything works here')\nprint(result)\ndef forgotToReturn(x):\n x*x\nprint(forgotToReturn(5))<\/textarea><\/div>\n<div id='pbhistory11' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit11' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(11)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(11,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse11\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"11\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"9b7f3f4bb01953a5fbbe924ce2aee475\"\/>\n<div id='pbresults11' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit11\").value = \"Run program\";document.getElementById(\"inputInUse11\").value = \"N\";<\/script>\n<\/p>\n<p>Oto <code>None<\/code>,  kt\u00f3re jest specjaln\u0105 warto\u015bci\u0105 u\u017cywan\u0105 przez Pythona jako symbol zast\u0119pczy og\u00f3lnego przeznaczenia. Je\u015bli <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28type%28None%29%29\" target=\"_blank\">wywo\u0142asz type(None)<\/a>, dowiesz si\u0119, \u017ce <code>None<\/code> ma nawet sw\u00f3j w\u0142asny typ <code>NoneType<\/code>. Skoro ju\u017c jeste\u015bmy przy tym temacie, sp\u00f3jrzmy, jaki jest typ zmiennej:<\/p>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform12\" method=\"POST\">\n<div class='pybox modeNeutral  facultative' id='pybox12'>\n<div class=\"heading\"><span class=\"title\">Example<\/span><\/div>The type of a type<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 58px;'><textarea wrap='off' name='usercode12' id='usercode12'  cols=10 rows=2 readonly='readonly'  style = 'height : 58px;'  class='pyboxCode RO'>\nx = 23432\nprint(x, type(x), type(type(x)), type(type(type(x))))<\/textarea><\/div>\n<div id='pbhistory12' class='flexcontain' style='display:none;'><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit12' value=' '\/><\/td>\n<td><input type='button' name='consolecopy' value=\"Open in console\" onclick=\"pbConsoleCopy(12)\" ><\/td>\n<td><input type='button' name='visualize' value=\"Visualize\" onclick=\"pbVisualize(12,'N')\" ><\/td>\n<\/tr><\/table><\/div>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" id=\"inputInUse12\" name=\"inputInUse\" value=\"Y\"\/>\n<input type=\"hidden\" name=\"pyId\" value=\"12\"\/>\n<input type=\"hidden\" name=\"hash\" value=\"aea32d11990220cd2435630a82e7da88\"\/>\n<div id='pbresults12' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit12\").value = \"Run program\";document.getElementById(\"inputInUse12\").value = \"N\";<\/script>\n<\/p>\n<p>W nast\u0119pnym \u0107wiczeniu prosimy o uwa\u017cne \u015bledzenie wynik\u00f3w d\u0142ugiego polecenia z u\u017cyciem <code>type<\/code> i <code>print<\/code>.<\/p>\n<div class='pybox modeNeutral multiscramble' id='pybox13'>\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'>Scramble Exercise: <\/span><span class='title'>One None<\/span><\/div>Wyj\u015bcie wydruku <code>print(type(print(type(type(print(print()))))))<\/code> sk\u0142ada si\u0119 z 4 linii. Rozmie\u015b\u0107 je we w\u0142a\u015bciwej kolejno\u015bci.<ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble13\">\n<li id=\"pyli13_0\" class=\"pyscramble\" ><i>&laquo;blank line&raquo;<\/i><\/li>\n<li id=\"pyli13_3\" class=\"pyscramble\" >&lt;class 'NoneType'&gt;<\/li>\n<li id=\"pyli13_1\" class=\"pyscramble\" >None<\/li>\n<li id=\"pyli13_2\" class=\"pyscramble\" >&lt;class 'type'&gt;<\/li>\n<\/ul>\n<div class=\"pyboxbuttons\"><input type='button' value='Check answer' onclick='pbMultiscrambleCheck(13)'\/>\n<input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"12.ordering\"\/>\n<\/div><div id=\"pbresults13\" class=\"pbresults\"><\/div><div class=\"epilogue\">Correct!<\/div><\/div>\n<p>Na razie to s\u0105 wszystkie wskaz\u00f3wki. Jeste\u015b gotowy, aby kontynuowa\u0107 nast\u0119pn\u0105 lekcj\u0119!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ta lekcja zawiera kilka fakt\u00f3w, dotycz\u0105cych j\u0119zyka Python, kt\u00f3re nie by\u0142y uwzgl\u0119dnione we wcze\u015bniejszych lekcjach. Opcje print Do tej pory, jedynym sposobem na zobaczenie wydruku, by\u0142o u\u017cycie funkcji print(), kt\u00f3ra mo\u017ce drukowa\u0107 w jednej lini kilka pozycji oddzielonych spacjami. W &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/12-pl\/\">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-9985","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9985","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=9985"}],"version-history":[{"count":13,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9985\/revisions"}],"predecessor-version":[{"id":10321,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/9985\/revisions\/10321"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=9985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}