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