anyone tell me why my program will not run?

Larry Hudson orgnut at yahoo.com
Sat Nov 21 21:44:17 EST 2015


On 11/20/2015 07:30 PM, Dylan Riley wrote:
> i am learning python and was tasked with making a program that flips a coin 100 times and then tells you
> the number of heads and tails.
>
> I have done so coming up with this piece of work but it doesnt run can anyone help me out?
>
> #This is credited to dylan
>
> print(" \\ \\ \\ \\ \\ \\ \\ \\ D FLIPS \\ \\ \\ \\ \\ \\ \\ \\")
> print("\n\nThis is D's coin flipper program. You get 100 flips. \n\t LETS SEE HOW LUCKY YOU ARE")
> input("Press enter")
>
> import random
>
> heads = int("1")
> tails = int("2")
> flips = 100
> headscount = 0
> tailscount = 0
>
> while flips != 0:
>      flips -= 1
>
> result = random.randint(heads, tails)
> if result = heads:
>      headscount += 1
> else:
>      tailscount += 1
>
>
> print(headscount, tailscount)
>
> input("press enter to exit")
>
It doesn't run because it if full of errors, which have already been discussed by others.

I just wanted to show you a (radically) different approach that you can study (or not... your 
choice).  I'm leaving out your heading and just showing the heart of the program.  I am not 
necessarily recommending this, I just wanted you to see a different way of looking at the 
problem.  Except for the initialization and printing of the results, the entire thing is done in 
one two-line for loop.

<code>
from random import randint

#  Put your heading text here...

HEADS = 0
TAILS = 1    #  Note:  Python _convention_ is to upper-case constants.
counts = [0, 0]

for flips in range(100):
     counts[randint(0, 1)] += 1

print('Number of heads: ', counts[HEADS])
print('Number of tails: ', counts[TAILS])
</code>

Note that the HEADS and TAILS constants are only used in one place (the final print functions), 
you could simply leave them out and directly use 0 and 1 in those final print()s.

      -=- Larry -=-




More information about the Python-list mailing list