{"id":6143,"date":"2012-11-05T20:20:34","date_gmt":"2012-11-06T01:20:34","guid":{"rendered":"http:\/\/cscircles.cemc.uwaterloo.ca\/?page_id=6143"},"modified":"2019-11-27T12:16:00","modified_gmt":"2019-11-27T17:16:00","slug":"06-if","status":"publish","type":"page","link":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/06-if\/","title":{"rendered":"06: If"},"content":{"rendered":"<p>In alle programma's tot nu toe zijn alle opdrachten uitgevoerd, zonder dat er een regel werd overgeslagen. Zoals in het volgende voorbeeld.<br \/>\nKlik op de knoppen Back (terug) en Forward (vooruit) om door het programma te gaan. Of gebruik de pijltjestoetsen.<br \/>\nOpmerking: \"line that has just executed\" betekent \"regel die als laatste is uitgevoerd\" en \" next line to execute\" betekent \" de regel die als eerstvolgende zal worden uitgevoerd\".<\/p>\n<p><iframe width='100%' height='480' frameborder='0' scrolling='no' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/OnlinePythonTutor3-cemc\/iframe-embed.html#code=geboorteJaar+%3D+1982%0AhuidigJaar+%3D+2014%0Aleeftijd+%3D+huidigJaar+-+geboorteJaar%0Aprint%28%27Jij+bent%27%2C+leeftijd%2C+%27jaar%27%29&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=400&rightStdout=1'><\/iframe><\/p>\n<p>Het nieuwe in deze les is de <strong><code>if<\/code>-opdracht<\/strong>, die het mogelijk maakt om, afhankelijk van of aan een voorwaarde is voldaan, bepaalde opdrachten wel of niet uit te voeren. Laten we als voorbeeld ons programma aanpassen om een boodschap af te drukken wanneer de leeftijd van een persoon voldoende is. We zullen twee regels toevoegen: <code>if leeftijd &gt; 65:<\/code> (hetgeen betekent \"als de leeftijd is hoger dan 65\" en <code>print('Geniet van uw pensioen')<\/code>. Ga nu nog eens stap voor stap door het programma.<\/p>\n<p><iframe width='100%' height='480' frameborder='0' scrolling='no' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/OnlinePythonTutor3-cemc\/iframe-embed.html#code=geboorteJaar+%3D+1982%0AhuidigJaar+%3D+2014%0Aleeftijd+%3D+huidigJaar+-+geboorteJaar%0Aif+leeftijd+%3E+65%3A%0A+print%28%27Geniet+van+uw+pensioen%21%27%29%0Aprint%28%27Jij+bent%27%2C+leeftijd%2C+%27jaar%27%29&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=400&rightStdout=1'><\/iframe><\/p>\n<p>Merk op dat de nieuwe <code>print<\/code>-opdracht werd <strong>overgeslagen<\/strong> omdat <code>leeftijd<\/code> slechts 32 was. Wat gebeurt er met <strong>exact hetzelfde programma<\/strong> wanneer <code>geboorteJaar<\/code> veranderd wordt in 1928:<\/p>\n<p><iframe width='100%' height='480' frameborder='0' scrolling='no' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/OnlinePythonTutor3-cemc\/iframe-embed.html#code=geboorteJaar+%3D+1928%0AhuidigJaar+%3D+2014%0Aleeftijd+%3D+huidigJaar+-+geboorteJaar%0Aif+leeftijd+%3E+65%3A%0A+print%28%27Geniet+van+uw+pensioen%21%27%29%0Aprint%28%27Jij+bent%27%2C+leeftijd%2C+%27jaar%27%29&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=400&rightStdout=1'><\/iframe><\/p>\n<p>Heb je het verschil gezien? In de laatste versie (met <code>leeftijd<\/code> 85) werden er twee regels afgedrukt en geen enkele regel overgeslagen. Dit is precies wat de <strong><code>if<\/code>-opdracht<\/strong> beoogt: een voorwaarde nagaan (is <code>leeftijd<\/code> groter dan 65?) en bepaalde opdrachten uitvoeren (afdrukken van <code>Geniet van uw pensioen!<\/code>) enkel wanneer de voorwaarde waar is.<br \/>\nWe noemen de opdrachten die enkel uitgevoerd worden als de voorwaarde waar is, het <strong>lichaam<\/strong>&nbsp;(Eng.: <strong><em>body<\/em><\/strong>)&nbsp;van de <code>if<\/code>-opdracht. Het lichaam moet <strong>inspringen<\/strong>, dat wil zeggen dat er extra spaties zijn aan het begin van de regel (zoals in het voorbeeld hierboven). Het lichaam kan meer dan \u00e9\u00e9n opdracht bevatten: die moeten dan allemaal evenveel spaties inspringen. Hier volgt een voorbeeld.<\/p>\n<p><!--[ pyVis width=\"480\" code=\"@file:lesson6\/100years.py\" ]--><\/p>\n<p><iframe width='100%' height='480' frameborder='0' scrolling='no' src='https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-content\/plugins\/pybox\/OnlinePythonTutor3-cemc\/iframe-embed.html#code=geboorteJaar+%3D+1928%0AhuidigJaar+%3D+2014%0Aleeftijd+%3D+huidigJaar+-+geboorteJaar%0Aif+leeftijd+%3E+65%3A%0A+print%28%27Geniet+van+uw+pensioen%21%27%29%0A+print%28%27Jij+wordt+100+in%27%2C+100+%2B+geboorteJaar%29%0Aprint%28%27Jij+bent%27%2C+leeftijd%2C+%27jaar%27%29&cumulative=false&heapPrimitives=false&drawParentPointers=false&textReferences=false&showOnlyOutputs=false&py=3&curInstr=0&resizeContainer=true&highlightLines&width=480&rightStdout=1'><\/iframe><\/p>\n<ul>\n<li>Probeer bovenstaand programma in de console of de visualizer uit te voeren met geboortejaar 1982.<\/li>\n<\/ul>\n<ul>\n<li>if x &lt; y: betekent \"als x is kleiner dan y\"<\/li>\n<li>if x &gt;= y: betekent \"als x is groter dan of gelijk aan y\"<\/li>\n<li>if x &lt;= y: betekent \"als x is kleiner dan of gelijk aan y\"<\/li>\n<\/ul>\n<p><form class=\"pbform\" action=\"#\" id=\"pbform0\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox0'>\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'>Twee varianten<\/span><\/div>Schrijf een programma dat een geheel getal van de invoer inleest: <code>pannenkoeken = int(input())<\/code>. Wanneer <code>pannenkoeken<\/code> meer is dan 3, print dan <code>Yum!<\/code>. En als pannenkoeken niet meer is dan 3, print dan <code>Still hungry!<\/code>. <a class=\"hintlink\"  id=\"hintlink1\">Hint<\/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='usercode0' id='usercode0'  cols=10 rows=20   class='pyboxCode RW'>\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory0' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput0\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit0' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch0\" value=\"Input Switch\" onclick=\"pbInputSwitch(0,'N')\" ><\/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><select id='pbSelect0' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(0,'6.ihop')\" >History<\/option>\n<option name='help' data-pbonclick=\"helpClick(0);\" >Help<\/option>\n<\/select><\/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=\"bf3ae6cfe8701b2d6b5761f742731f81\"\/>\n<div id='pbresults0' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>pbInputSwitch(0,\"N\");<\/script>\n<\/p>\n<h2>De algemene structuur van een <code>if<\/code>-opdracht<\/h2>\n<ul>\n<li>De eerste regel\n<pre>if \u00abvoorwaarde\u00bb:<\/pre>heeft drie delen: het woordje <code>if<\/code>, de <code>\u00ab<code>voorwaarde<\/code>\u00bb<\/code> die ofwel Waar of Onwaar (True of False) moet zijn (meer hierover hieronder), en een dubbele punt <code>:<\/code><\/li>\n<li>Dan het&nbsp;<strong>lichaam<\/strong>, wat een voorbeeld is van een <strong>blok<\/strong>,&nbsp;waarmee we een reeks opdrachten bedoelen die \u00e9\u00e9n of meerdere opdrachten lang kan zijn. Python leidt af waar het blok begint en eindigt door inspectie van&nbsp;de&nbsp;<em>inspringing<\/em>, of anders gezegd je moet een zelfde aantal spaties plaatsen voor iedere regel in het blok.<\/li>\n<\/ul>\n<h3>Lichamen<\/h3>\n<p>Lichamen zullen later op veel meer plaatsen worden gebruikt: in <code>for<\/code>-lussen, en wanneer je bijvoorbeeld je eigen functies schrijft. (Een typische manier in vele&nbsp;<em>andere<\/em> programmeertalen om een lichaam aan te geven is met accoladen <code>{ }<\/code>.) Alle regels in het lichaam moeten op <strong>precies op dezelfde manier inspringen<\/strong>: ze moeten starten met exact hetzelfde aantal spaties. Zodra Python ziet dat de volgende regel meer spaties heeft, neemt het aan dat er een nieuw lichaam wordt gestart, en wanneer er minder spaties zijn, eindigt het lichaam.<\/p>\n<p>De volgende oefening bestaat eigenlijk uit 4 oefeningen. Je moet de regels van een programma in een andere volgorde zetten om telkens een ander resultaat te krijgen. Klik op de horizontale balk-knoppen om elk van de onderdelen te openen; je kunt dat in elke gewenste volgorde doen. <em>Zoals gebruikelijk kun je in elk onderdeel de regels verslepen.<\/em><\/p>\n<div class=\"accordion\"><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\nDeel 1: Onverwacht inspringen (Eng.: <em>unexpected indent<\/em>)\n<\/div>\n<div class='collapseBody'><br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform2\" method=\"POST\">\n<div class='pybox modeNeutral scramble' id='pybox2'>\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'>Onverwacht inspringen (Eng.: <em>unexpected indent<\/em>)<\/span><\/div>Je moet ervoor zorgen dat de volgende fout optreedt:<\/p>\n<pre>IndentationError: unexpected indent<\/pre><ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble2\">\n <li class=\"pyscramble\">if 1000 &lt; 10:<\/li>\n <li class=\"pyscramble\">   print(&quot;message 1&quot;)<\/li>\n <li class=\"pyscramble\">  print(&quot;message 2&quot;)<\/li>\n <li class=\"pyscramble\">if 2 &gt; 1:<\/li>\n <li class=\"pyscramble\">  print(&quot;message 3&quot;)<\/li>\n<\/ul>\n<input type='hidden' id='usercode2' name='usercode2'\/>\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<\/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=\"26b82f7f770b5eaa5370bb4d386b7115\"\/>\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<\/div><\/div><\/div>\n<p><div class=\"accordion\"><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\nDeel 2: Onverwacht niet inspringen (Eng.: <em>unexpected unindent<\/em>)\n<\/div>\n<div class='collapseBody'><br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform3\" method=\"POST\">\n<div class='pybox modeNeutral scramble' 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'>Scramble Exercise: <\/span><span class='title'>Onverwacht niet inspringen (Eng.: <em>unexpected unindent<\/em>)<\/span><\/div>Je moet ervoor zorgen dat de volgende fout optreedt:<\/p>\n<pre>IndentationError: unindent does not match any outer indentation level<\/pre><ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble3\">\n <li class=\"pyscramble\">if 1000 &lt; 10:<\/li>\n <li class=\"pyscramble\">  print(&quot;message 2&quot;)<\/li>\n <li class=\"pyscramble\">if 2 &gt; 1:<\/li>\n <li class=\"pyscramble\">  print(&quot;message 3&quot;)<\/li>\n <li class=\"pyscramble\">   print(&quot;message 1&quot;)<\/li>\n<\/ul>\n<input type='hidden' id='usercode3' name='usercode3'\/>\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=\"84e793be4990421a2d0234ce6a7f9e5b\"\/>\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<\/div><\/div><\/div>\n<p><div class=\"accordion\"><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\nDeel 3: Inspringen verwacht maar niet aangetroffen (Eng.: <em>indent expected but not found<\/em>)\n<\/div>\n<div class='collapseBody'><br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform4\" method=\"POST\">\n<div class='pybox modeNeutral scramble' id='pybox4'>\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'>Inspringen verwacht (Eng.: <em>expected indent<\/em>)<\/span><\/div>Je moet ervoor zorgen dat de volgende fout optreedt:<\/p>\n<pre>IndentationError: expected an indented block<\/pre><ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble4\">\n <li class=\"pyscramble\">if 1000 &lt; 10:<\/li>\n <li class=\"pyscramble\">   print(&quot;message 1&quot;)<\/li>\n <li class=\"pyscramble\">  print(&quot;message 2&quot;)<\/li>\n <li class=\"pyscramble\">if 2 &gt; 1:<\/li>\n <li class=\"pyscramble\">  print(&quot;message 3&quot;)<\/li>\n<\/ul>\n<input type='hidden' id='usercode4' name='usercode4'\/>\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=\"f9df31abcdfb32b5cd8c526513a44b3f\"\/>\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<\/div><\/div><\/div>\n<p><div class=\"accordion\"><div class='collapseContain hiding'>\n<div class='collapseHead'><span class='icon'><\/span>\nDeel 4: Juiste wijze van inspringen\n<\/div>\n<div class='collapseBody'><br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform5\" method=\"POST\">\n<div class='pybox modeNeutral scramble' 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'>Scramble Exercise: <\/span><span class='title'>Alles in orde<\/span><\/div>Zorg dat er geen foutmelding optreedt<ul class=\"pyscramble\" name=\"pyscramble\" id=\"pyscramble5\">\n <li class=\"pyscramble\">if 1000 &lt; 10:<\/li>\n <li class=\"pyscramble\">   print(&quot;message 1&quot;)<\/li>\n <li class=\"pyscramble\">  print(&quot;message 2&quot;)<\/li>\n <li class=\"pyscramble\">if 2 &gt; 1:<\/li>\n <li class=\"pyscramble\">  print(&quot;message 3&quot;)<\/li>\n<\/ul>\n<input type='hidden' id='usercode5' name='usercode5'\/>\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<\/tr><\/table><\/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=\"5474723ed117ec33db37f418620c39be\"\/>\n<div id='pbresults5' class='pbresults'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>document.getElementById(\"submit5\").value = \"Run program\";document.getElementById(\"inputInUse5\").value = \"N\";<\/script>\n&nbsp;<\/div><\/div> <\/div>\n<h3><code>True<\/code>, <code>False<\/code>, en Booleaanse waarden<\/h3>\n<p>Tot nu toe zagen we, in het <code>\u00ab<code>voorwaarde<\/code>\u00bb-<\/code>deel van een <code><code>if<\/code><\/code>-opdracht, eenvoudige numerieke ongelijkheden zoals <code><code>x &gt; y<\/code><\/code> en <code><code>x &lt;= y<\/code><\/code>, die al of niet waar zijn. Meer in het algemeen wordt iedere expressie die of waar of niet waar is&nbsp;<strong>Booleaans<\/strong> genoemd (naar <a href=\"http:\/\/nl.wikipedia.org\/wiki\/George_Boole\">George Boole<\/a>). In Python wordt het booleaanse type gebruikt om Booleaanse waarden voor te stellen; er bestaan slechts twee Booleaanse waarden, <code>True<\/code> en&nbsp;<code>False<\/code> (waar en onwaar).<\/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>Booleaanse expressies<div class='pyboxTextwrap pyboxCodewrap RO '  style='height: 110px;'><textarea wrap='off' name='usercode6' id='usercode6'  cols=10 rows=4 readonly='readonly'  style = 'height : 110px;'  class='pyboxCode RO'>\nprint(2&gt;1)\nb = False\nprint(b)\nprint(type(b), type(2&gt;1), type(True))<\/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=\"b696c04c9860d8276e0ff89ec3161af2\"\/>\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>Merk op dat als je in Python&nbsp;<code>de Booleaanse waarden <code>True<\/code> en<\/code> <code><code>False<\/code><\/code> direct in het programma gebruikt, ze <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=print%28true%29\" target=\"_blank\">met een hoofdletter moeten beginnen, anders krijg je een foutmelding<\/a>.<\/p>\n<h3>Vergelijkingen<\/h3>\n<p>We zijn al eerder de operatoren <code><code>&lt;<\/code><\/code>, <code><code>&gt;<\/code><\/code>, <code><code>&lt;=<\/code><\/code> en <code><code>&gt;=<\/code><\/code>&nbsp; tegengekomen, waarin twee getallen worden vergeleken<code> en waarbij een Boole<code>aanse waarde wordt <code>teruggegeven<\/code><\/code><\/code>. Er zijn nog twee manieren om getallen te vergelijken:<\/p>\n<ul>\n<li><code><code>x == y<\/code><\/code> is de <strong>is-gelijk-operator<\/strong>;&nbsp;ze zal <code><code>True<\/code><\/code>&nbsp;teruggeven als en slechts als&nbsp;<code><code>x<\/code><\/code> en <code><code>y<\/code><\/code> gelijk zijn.<\/li>\n<li><code><code>x != y<\/code><\/code> is de <strong>is-ongelijk-operator<\/strong>; ze zal <code>True<\/code> teruggeven als en slechts als <code>x<\/code> en <code>y<\/code> niet gelijk zijn.<\/li>\n<li><code>==<\/code> en <code>!=<\/code> werken ook op tekenreeksen en andere types van waarden.<\/li>\n<\/ul>\n<p>(Hier worden twee gelijktekens gebruikt <code><code>==<\/code><\/code> omdat het enkelvoudige gelijkteken al betekenis heeft in <code><code>x = \u00abexpressie\u00bb<\/code><\/code> waarmee bedoeld wordt \"ken aan <code><code>x<\/code><\/code> de waarde van \u00abexpressie\u00bb toe\". Het verwarren van <code><code>=<\/code><\/code> en&nbsp;<code><code>==<\/code><\/code> komt vaak voor: <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=x%20%3D%201%2B1%0Aif%20x%20%3D%202%3A%20%23moet%20%3D%3D%20zijn%0A%20print%28%22Monkey%22%29\" target=\"_blank\">source<\/a> of <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/console\/?consolecode=n%20%3D%2010%0As%20%3D%3D%20n%2An%20%23moet%20%3D%20zijn\" target=\"_blank\">bugs<\/a>.)<\/p>\n<p>Hier volgt om te beginnen een voorbeeld.<br \/>\n<form class=\"pbform\" action=\"#\" id=\"pbform7\" method=\"POST\">\n<div class='pybox modeNeutral ' id='pybox7'>\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'>What's Your Sign?<\/span><\/div>Schrijf een programma dat een getal inleest en daarna als uitvoer \u00e9\u00e9n van de volgende woorden tot uitvoer heeft: <code>Positief<\/code>, <code>Negatief<\/code>, of <code>Nul<\/code>. Dit al naar gelang het ingelezen getal positief, negatief of nul is.<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='usercode7' id='usercode7'  cols=10 rows=20   class='pyboxCode RW'>\nx=int(input())\n# delete this comment and enter your code here\n<\/textarea><\/div>\n<div id='pbhistory7' class='flexcontain' style='display:none;'><\/div>\n<div name=\"pyinput\" id=\"pyinput7\">You may enter input for the program in the box below.<div class=\"pyboxTextwrap resizy\" style=\"height: 102px;\" ><textarea wrap=\"off\" name=\"userinput\" class=\"pyboxInput\" cols=10 rows=4><\/textarea><\/div><\/div>\n<input type='hidden' id='defaultCode7' value='x=int(input())\\n'><\/input>\n<div class='pyboxbuttons'><table><tr>\n<td><input type='submit' name='submit' id='submit7' value=' '\/><\/td>\n<td><input type='button' name='switch' id=\"switch7\" value=\"Input Switch\" onclick=\"pbInputSwitch(7,'N')\" ><\/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><select id='pbSelect7' class='selectmore'><option name='more'>More actions...<\/option>\n<option name='history' data-pbonclick=\"historyClick(7,'6.sign')\" >History<\/option>\n<option name='default' data-pbonclick=\"pbSetText(7,descape($('#defaultCode7').val()))\" >Reset code to default<\/option>\n<option name='help' data-pbonclick=\"helpClick(7);\" >Help<\/option>\n<\/select><\/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=\"2f2a21624d06794a22b155723a7e0802\"\/>\n<div id='pbresults7' class='pbresults avoidline'><\/div>\n<\/div>\n<\/form>\n<script type='text\/javascript'>pbInputSwitch(7,\"N\");<\/script>\n<\/p>\n<p>We hebben zojuist het concept <strong>blok<\/strong>&nbsp;ge\u00efntroduceerd (meerdere regels na elkaar die hetzelfde inspringen). Er kan een blok in een ander blok voorkomen:<\/p>\n<pre>if wachtwoord=='SesamOpenU':\n &nbsp;print('De gebruiker is ingelogd.')\n &nbsp;if uur&gt;18:\n &nbsp; &nbsp;print('Goedenavond!')\n &nbsp;print('Type een opdracht in:')<\/pre>Hier bestaat uit het buitenste blok uit 4 regels en het binnenblok uit maar 1 regel:&nbsp;<pre>\nif wachtwoord=='SesamOpenU':  <div style=\"margin:0px 20px; margin:0ch 1.9ch; background: #CCF; border: solid blue 1px; border: solid blue 0.1ch;\">print('De gebruiker is ingelogd.')<br\/>if uur&gt;18:\n<div style=\"margin:0px 20px; margin: 0ch 1.9ch; background: #FCC; border: solid red 1px; border: solid red 0.1ch;\">print('Goedenavond!')<\/div>print('Type een opdracht in:')<\/div><\/pre>\n<\/p>\n<p><div class='pybox modeNeutral' id='pybox8'>\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'>Geneste <code>if<\/code>s<\/span><\/div><div>Welke van de volgende uitvoer is&nbsp;<strong>niet<\/strong> mogelijk?<\/div><label>Your choice: <\/label><select id=\"pyselect8\"><option value=\"d\" selected>Select one<\/option><option value=\"w\">geen uitvoer<\/option><option value=\"w\">twee regels: 'De gebruiker is ingelogd.' en 'Type een opdracht in:'<\/option><option value=\"w\">drie regels: 'De gebruiker is ingelogd.', 'Goedenavond!', en 'Type een opdracht in::'<\/option><option value=\"r\">een regel: ''De gebruiker is ingelogd.'<\/option><\/select><div class='pyboxbuttons'><input type=\"hidden\" name=\"lang\" value=\"\"\/><input type=\"hidden\" name=\"slug\" value=\"6.nested\"\/><input type='submit' style='margin:5px;' value='Check answer' onClick='pbMultiCheck(8)'\/><\/div><div class=\"pbresults\" id=\"pyMultiResults8\"><\/div><div class=\"epilogue\">Correct! Wanneer er ook maar \u00e9\u00e9n boodschap te zien is, dan betekent dat dat het buitenste (blauwe) blok is uitgevoerd, of met andere woorden dat het wachtwoord correct was. In dat geval, zelfs als <code><code>uur&gt;18<\/code><\/code> onwaar is (waardoor het binnenblok wordt overgeslagen), zal de regel <code><code>print('Type een opdracht in:')<\/code><\/code> van het buitenblok toch worden uitgevoerd.<\/div><\/div>.<\/p>\n<p>Later, in les 9, zullen we zien dat in programma's waarin meerdere Booleaanse waarden moeten worden gecheckt, ze kunnen worden vereenvoudigd door middel van <code>else<\/code> en <code>elif<\/code> (<em>else if<\/em>) en tevens het gebruik van de operatoren \"and\", \"or\" en \"not\". Nu kun je naar de volgende les gaan.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In alle programma's tot nu toe zijn alle opdrachten uitgevoerd, zonder dat er een regel werd overgeslagen. Zoals in het volgende voorbeeld. Klik op de knoppen Back (terug) en Forward (vooruit) om door het programma te gaan. Of gebruik de &hellip; <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/06-if\/\">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-6143","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6143","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=6143"}],"version-history":[{"count":57,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6143\/revisions"}],"predecessor-version":[{"id":11292,"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/pages\/6143\/revisions\/11292"}],"wp:attachment":[{"href":"https:\/\/cscircles.cemc.uwaterloo.ca\/dev\/wp-json\/wp\/v2\/media?parent=6143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}