2015-07-30 4 views
1
from random import randint 
number_of_trials = 100 
range_of_random_numbers = 1000 
for each in number_of_trials: 
    print randint(range(range_of_random_numbers)) 

Я начинающий к python. При попытке выполнения кода я получаю сообщение об ошибке:Выбор randint из диапазона

TypeError: 'int' object is not iterable

Я пытаюсь получить случайное число из диапазона (определенный в range_of_numbers), чтобы напечатать определенное количество раз (определяется в number_of_trials). Пожалуйста, помогите, что я делаю неправильно?

ответ

2

Используйте range, чтобы сделать итерируемый (список, если вы используете Python 2.x), который будет использоваться для итерации.

и вам нужно передать два целое с random.randint, а не interable (или список):

from random import randint 

number_of_trials = 100 
range_of_random_numbers = 1000 
for each in range(number_of_trials): 
    print randint(0, range_of_random_numbers) 
+0

Это сделал это! Благодарю. Я знал, что у меня что-то не хватает, но я больше смотрел на то, что было внутри цикла for, а не на то, что определило его. – bluesriff

0

Один вопрос и одно предложение в вашем коде -

  1. Вы делаете - for each in number_of_trails: - это неправильно, вы пытаетесь перебрать целое число, вы должны сделать - for each in range(number_of_trails):.

  2. Лучшее использование здесь random.choice() (Вместо randint()). Особенно, если range_of_random_numbers не является непрерывным.

Пример -

from random import choice 
number_of_trials = 100 
range_of_random_numbers = 1000 
for each in range(number_of_trials): 
    print choice(range(range_of_random_numbers)) 

От documentation of random.choice() -

Return a random element from the non-empty sequence seq.

1

Я думаю, что вы хотите использовать выбор.

from random import choice 

Затем измените

print randint(range(range_of_random_numbers)) 

в

print choice(range(range_of_random_numbers)) 

Функция выбора случайным образом выберет элемент из непустой последовательности.

0

Это должно быть как

from random import randint 
number_of_trials = 100 
range_of_random_numbers = 1000 
for each in range(number_of_trials): 
    print randint(range(range_of_random_numbers)) 

Вы получили ошибку из-за того, ИНТ объекта не Iterable что:

т.е.)

for a in 1: 
    print a 

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not iterable 
Смежные вопросы