Boston Python Workshop 6/Friday/CodingBat Using Codingbat: Difference between revisions

imported>Jesstess
imported>Adamf
 
(20 intermediate revisions by one other user not shown)
Line 1:
We are going to use a website called [http://codingbat.com/home/bostonpythonworkshop@gmail.com/PythonIntro CodingBat.com] to practice Python throughout this workshop.
 
Before you do the CodingBat questions for the Friday tutorial, let's walk through how to use CodingBat.com with an example.
Line 7:
CodingBat is a little different from using Python at the command line or in a text editor like we've been doing. When you use CodingBat, you type your code into a web page and click 'Go' when you want that code to run. You'll still need to make sure you indent all your code to the same level.
 
For each CodingBat question, you will write a '''function'''. CodingBat will run your function with a few different inputs, and will compare the output of the function you wrote to what it knows is the correct answer. If all the outputs are correct for all the inputs, you've written the function correctly!
 
We like CodingBat because it gives you immediate feedback on how close your function is to being correct.
 
Let's walk through an example., In this case I'll usethe [http://codingbat.com/prob/p216579 the sumTwoNumbers] exercise.
 
If you visit that exercise web page, this is what you'll see:
Here's the first screen we see:
 
<br />
 
[[File:Cbat_openingscreen.png|border|center]]
 
<br />
This screen describes the problem (write a function to add any two numbers together) and gives you the inputs that CodingBat will give to the function you've written, and the outputs that CodingBat expects to see returned from your function for each input.
 
This screen:
# describes the problem (write a function to add any two numbers together)
This# screenshows describesyou thesome problem (write a function to add any two numbers together) and gives youof the inputs that CodingBat will giveuse to test the function you've written, and the outputs that CodingBat expects to see returned from your function for each input.
 
The inputs are the values in the parentheses, and the expected output is the value pointed to by the arrows:
 
 
[[File:Cbat_io.png|border|center]]
 
For this example CodingBat is going to run your function three times (one for each set of inputs). Some of the CodingBat problems will run your function more than three times, some less.
 
If you simply click "Go" without typing anything in the box, CodingbBatCodingBat gives you an error on the right hand side of the screen:
 
 
[[File:Cbat_nocode.png|border|center]]
 
 
Let's add some code. Remember that you just need to write the body of the function, but you still need to indent. Here's a first try at the problem:
Let's add some code. The '''function signature''' (the <code>def sumTwoNumbers(first, second):</code> part) has already been written for you. You'll write the rest of the function -- remember to indent everything inside the function, and remember to <code>return</code> your result instead of <code>print</code>ing it!
 
 
[[File:Cbat_wrong.png|border|center]]
 
Hmm. I've got one correct and two wrong. Maybe instead of <code>return</code> I should use <code>print</code>?
 
Hmm. I've got one correct and two wrong. MaybeOh! insteadI ofsee - I typed in <code>returnfirst</code> twice, when instead I should usehave used <code>printsecond</code>?:
[[File:Cbat_print.png|border|center]]
 
That's not it. CodingBat problems always want you to use <code>return</code> in your functions. Oh! I see - I typed in <code>first</code> twice, when instead I should have used <code>second</code>:
 
[[File:Cbat_correct.png|border|center]]
 
Great!
 
Great! All the tests are green, so we know that we've done this problem correctly and can move on to the next one.
I can check this by typing the same function into the command prompt:
 
What CodingBat is doing is the same as when you write a function in your text editor or at the commandPython prompt and then run it a few times, like this:
 
What CodingBat is doing is the same as when you write a function in your editor or at the command prompt and run it a few times, like this:
 
<pre>
awf$ python
Python 2.6.1 (r261:67515, Aug 2 2010, 20:10:18)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def sumTwoNumbers(first, second):
... return first + second
Line 64 ⟶ 65:
</pre>
 
Perfect!
 
Now that you are a CodingBat master:
 
<div style="font-size:125%">[http://codingbat.com/home/bostonpythonworkshop@gmail.com/PythonIntroFriday Now&raquo; weClick can move onhere to completing tonight's practice problems &laquo;]</div>
Anonymous user