Scott David Daniels wrote:

> David Barr wrote:

>> I am brand new to Python (this is my second day), and the only

>> experience I have with programming was with VBA. Anyway, I'm posting

>> this to see if anyone would be kind enough to help me with this (I

>> suspect, very easy to solve) query.

>>

>> The following code is in a file which I am running through the

>> interpreter with the execfile command, yet it yeilds no results. I

>> appreciate I am obviously doing something really stupid here, but I

>> can't find it. Any help appreciated.

>>

>>

>> def d6(i):

>> roll = 0

>> count = 0

>> while count <= i:

>> roll = roll + random.randint(1,6)

>> count += 1

>>

>> return roll

>>

>> print d6(3)

> A) your direct answer: by using <=, you are rolling 4 dice, not 3.

> B) Much more pythonic:

>

> import random

>

> def d6(count):

> result = 0

> for die in range(count):

> result += random.randint(1, 6)

> return result

>

> -Scott David Daniels

> (E-Mail Removed)
I was surprised by the speed and number of posts. Thanks for the

solutions provided!

>>> def roll(times=1, sides=6):
.... return random.randint(times, times*sides)

Although this would probably be quicker than the other approaches, I'm

not using the dice to generate numbers per say, I actually want to

emulate the rolling of dice, bell-curve (normal distribution) as well as

the range.

Thanks again, I already like what (very) little I can do in Python and

it seems to have a great community too.

Cheers,

Dave.