2015-09-29 2 views
-2

Что я хочу иметь, это цикл while и генерировать случайный список случайного количества int.Использование цикла While для генерации ints для добавления?

import random 

randAmount = random.randint(15,20) 
randNumber = random.randint(2,5) 
numbList = [] 

lookFor = 3 

while len(numbList) < randAmount: 
    numbList.append(randNumber) 

мой выход:

[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] 

Что я могу сделать для того, чтобы иметь randNumber повторять разные номера?

Примечание: Это нормально, если числа повторятся.

ответ

5

randint()раз для генерации randNumber. Если вы хотите, чтобы генерировать различные случайных чисел вы должны продолжать называть его, в цикле:

while len(numbList) < randAmount: 
    numbList.append(random.randint(2,5)) 

Вы можете использовать список понимание вместо while петли здесь;

numbList = [random.randint(2, 5) for _ in range(random.randint(15, 20))] 

Быстрый демо последнего подхода:

>>> import random 
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))] 
[2, 5, 3, 5, 5, 2, 3, 4, 3, 4, 3, 2, 4, 3, 2, 5, 3] 
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))] 
[2, 2, 2, 5, 3, 5, 3, 4, 4, 3, 5, 3, 5, 5, 5] 
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))] 
[5, 2, 5, 2, 5, 5, 4, 5, 2, 4, 2, 2, 4, 3, 3, 3, 3, 4, 2] 
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))] 
[3, 5, 5, 3, 4, 2, 3, 2, 5, 3, 4, 4, 2, 5, 5, 4, 2, 4] 
0

Сделать это функция, а не значение.

randNumber = lambda: random.randint(2,5) 

Затем вызовите эту функцию каждый раз.

numbList.append(randNumber()) 
Смежные вопросы