DannyB said unto the world upon 21/02/06 06:14 PM: > I'm just learning Python. I've created a simple coin flipper program - > here is the code: > > [source] > #Coin flipper > import random > > heads = 0 > tails = 0 > counter = 0 > > coin = random.randrange(2) > > while (counter < 100): > if (coin == 0): > heads += 1 > counter += 1 > else: > tails += 1 > counter += 1 > > coin = random.randrange(2)
<snip> > The program runs - however - it will give me 100 heads OR 100 tails. > Can someone spot the logic error? <snip> Your original question is long since answered. But I've a style point. As Dennis Lee Bieber pointed out, you don't need all three accumulators. If you keep to the overall style of your code, you can avoid repeating yourself as: while (counter < 100): counter += 1 # No point in putting this in each branch coin = random.randrange(2) if (coin == 0): heads += 1 else: tails += 1 For roughly the same style, I'd go with: heads = 0 count = 100 for i in range(count): if random.randrange(2): heads += 1 tails = count - heads HTH, Brian vdB -- http://mail.python.org/mailman/listinfo/python-list