# [Tutor] Giving a name to a function and calling it, rather than calling the function directly

lists lists at justuber.com
Sat Sep 4 16:14:37 CEST 2010

```Hi folks,

I'm new to Python, I'm working my way through some intro books, and I
have a question that I wonder if someone could help me with please?

This is my attempt at solving an exercise where the program is
supposed to flip a coin 100 times and then tell you the number of

ATTEMPT 1 returns:

The coin landed on tails 100 times

The coin landed on heads 0 times

ATTEMPT 2 returns:

The coin landed on tails 75 times

The coin landed on heads 25 times

I expected to see the result in attempt 2. I don't fully understand
why the results are different however. Is it because Python only runs
the randint function once when I call it by the name I assigned to it
in attempt 1, but it runs the function fully on each iteration of the
loop in attempt 2? Why are these two things different?

Chris
------------------------------------------------------------------
ATTEMPT 1
------------------------------------------------------------------
import random

tails = 0
tossNo = 0
toss = random.randint(1,2)

while tossNo <= 99:
if toss == 1:
tossNo += 1
elif toss == 2:
tails += 1
tossNo += 1

print "The coin landed on tails " + str(tails) + " times \n"
print "The coin landed on heads " + str(heads) + " times \n"

------------------------------------------------------------------
ATTEMPT 2
------------------------------------------------------------------
import random

tails = 0
tossNo = 0

while tossNo <= 99:
if random.randint(1,2) == 1: