<kb1...@aim.com> wrote in message
I'm running a test to find what the experimental average of a d20 is, and
came across a strange bug in my code.
import random
list1 = []
def p():
d = 0
for number in range(1,1000):
t = random.randrange(1,19)
list1.append(t)
for value in list1:
d+=value
print d/1000
d = 0
for value in range(1,100):
p()
It works, but I have a logic error somewhere. It runs, and the results
have a pattern :
It just adds 10, and every second result, subtracts 1, till it gets to 0,
and then starts again with 9 in singles, and whatever in the 10's, etc.
I'm not exactly sure what you expect but given you are finding the
average of a set of numbers between 1,19 I'd expect the result to be 9.5.
In other words the integer value will vary between 9 and 10, which is what
is happening.
Can you show us a segment of data that manifests the problem
more clearly than the set you have included?
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor