[Tutor] beginner here

Dave Angel d at davea.name
Thu Dec 8 05:15:00 CET 2011


On 12/07/2011 08:39 PM, Max S. wrote:
> You are using an 'elif' for your 'coin_rolls == 1:'.  The 'elif' keyword
> means that if the last 'if' statement (and any 'elif's behind it) was *not*
> true, only then will it be executed.  Your code could be written as 'if
> rolls is NOT less than or equal to 100, only then check to see if it is 1
> or 2'.  Replace your first 'elif' with 'if', and it should work.
>
You top-posted.  On this forum, you should put your comments after 
whatever you're quoting.
> On Wed, Dec 7, 2011 at 8:17 PM, Do youknow who<mrsannman at yahoo.com>  wrote:
>
>> Im trying to write this program where i make it flip a coin 100 times then
>> tells me the number of heads and tails it came up with.
>>
>> this is what I got but it does not run
>>
>> # Coin Flip
>> # Demonstrating the While loop
>> import random
>> print("I will flip a coin 100 times and tell you")
>> print(", how many heads and how many tails I got.")
>> coin_rolls = random.randint(1,2)
>> heads = 0
>> tails = 0
>> rolls = 0
>>
>> if rolls<= 100:
>>      rolls += 1
>>
>> elif coin_rolls == 1:
>>      heads += 1
>> elif coin_rolls == 2:
>>      tails += 1
>> else:
>>      print("error")
>> print("There was ", heads, "rolls for heads,")
>> print("\nand there was ", tails, " rolls for tails.")
>> input("\n\nPress the enter key to exit.")
>>
>> I end up with 0 rolls for heads and 0 rolls for tails...I have made
>> attempts to put the
>> "coin_rolls = random.randint(1,2)" within the loops but only end up with
>> errors
>> what wrong with my code?
>>
First point is if you're getting errors, you should post the error 
message, including the full traceback.  Or if you get no errors, but the 
results aren't what you expect, you should indicate what you expected, 
and how the actual results were different than expected.  What you 
expect is that rolls will be == 100, and that heads and tails will add 
up to 100.

In addition to Max's point, there's another glaring problem here.  You 
don't have a  loop of any kind.  Your comment indicates it's going to be 
a while loop, but since you already know how many times you're going to 
loop, there's no point.  Just make it a for loop.

for roll in range(100):

Then of course the body of the loop will need to be indented.  So you 
have to decide what's going to be inside the loop, and what's 
initialization, or summary stuff.  You will then discover that the order 
of your code isn't quite right.

Work on those two points, and see what you come up with.


-- 

DaveA



More information about the Tutor mailing list