Beginners Query - Simple counter problem

2007-09-06 Thread David Barr
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)
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Beginners Query - Simple counter problem

2007-09-06 Thread David Barr
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
> [EMAIL PROTECTED]

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.
-- 
http://mail.python.org/mailman/listinfo/python-list