I would make list of all the numbers in the beginning and then just add
numbers in a range to the list.
It's much easier to test for something in a list than to compare each
number with the previous one.
Here is a example:
import random
def randnum():
c = []
l = len(c)
# Numbers in your list = 6
while l < 6:
for x in range(6):
s = random.randrange(1, 50) # your range will be 1-49
# test for duplicates
if s not in c:
c.append(s)
l = len(c)
c.sort()
d = len(c)
print ' '* 20 + 'Randoms: %s and the Bonus number: %s' %
(str(c[:5]), str(c[5]))
c = []
if __name__ == '__main__':
q = int(raw_input('How many picks do ou need?>'))
for x in range(q):
randnum()
HTH
Johan
Bob Gailer wrote:
[EMAIL PROTECTED] wrote:
I am new to Python (and programming). In teaching myself I wrote a
small program that will pick random lottery numbers, I want to check for
duplicates and rerun the random function. But I am hitting a wall.
This is what I think should work, but I still get duplicates. TIA.
random.shuffle() is the predefined way to do this. But for more general
things like this it is better to use a list to hold multiple values.
Example:
import random
picks = [] # collect unique picks
count = input("How many quick picks do you need? ")
while len(picks) < count:
pick = random.randint(1,55)
if not pick in picks:
picks.append(pick)
print picks
OR
import random
picks = [0]*55
count = input("How many quick picks do you need? ")
got = 0
while got < count:
pick = random.randint(1,55)
if not picks[pick]:
picks[pick] = 1
got += 1
for i in range(len(picks)+1):
if picks[i]:
print i,
|
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor