[英]Selecting randint from range
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的初学者。 当我尝试运行上面的代码时,我收到错误:
TypeError:'int'对象不可迭代
我试图从范围(在range_of_numbers中定义)中获取一个随机数来打印一定数量的时间(在number_of_trials中定义)。 请帮忙,我做错了什么?
使用range
来创建一个可迭代的(如果你使用Python 2.x,则列表)将用于迭代。
你需要将两个整数传递给random.randint
,而不是一个interable(或list):
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)
我想你想要用的是选择。
from random import choice
然后改变
print randint(range(range_of_random_numbers))
至
print choice(range(range_of_random_numbers))
选择函数将从非空序列中随机选择一个元素。
您的代码中有一个问题和一个建议 -
你正在做 - for each in number_of_trails:
- 这是错误的,你试图迭代一个整数,你应该做 - for each in range(number_of_trails):
这里最好用的是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))
从非空序列seq返回一个随机元素。
应该是这样的
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))
由于int对象不可迭代,因此得到错误:
即)
for a in 1:
print a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.