[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