TypeError: 使用 WHILE 时 'float' 对象不可遍历
你好,
我正在尝试做一个简单的循环,想要生成1000个向量,以便在其他计算中使用。我尝试了很多方法,但在使用while循环时,还是遇到了“float对象不可迭代”的错误。以下是我的代码:
import random
count = 1000
alfa_1 = [0, 1]
alfa_2 = [0, 1]
d = [0, 1]
while count > 0:
print count
for i in range(count):
alfa_1 = random.random () * (max (alfa_1) - min(alfa_1)) + min (alfa_1)
alfa_2 = random.random () * (max(alfa_2) - min(alfa_2)) + min (alfa_2)
d = random.random () * (max(d) - min(d)) + min(d)
paramvect = [alfa_1, alfa_2, d]
print paramvect
count = count - 1
谢谢你能提供的任何帮助!
1 个回答
5
你最开始给 alfa_1
和 alfa_2
赋值为 list
(列表)类型的值,但后来又把它们赋值为 float
(浮点数)类型的值。
# As lists
alfa_1 = [0, 1]
alfa_2 = [0, 1]
...
# As floats
alfa_1 = random.random () * (max (alfa_1) - min(alfa_1)) + min (alfa_1)
alfa_2 = random.random () * (max(alfa_2) - min(alfa_2)) + min (alfa_2)
因此,在循环的第二次运行时,你传给 max
的是一个 float
类型的值,而它其实需要的是可以遍历的东西(比如一个 list
)。这里的目标不太清楚,所以我无法提供更完整的解决方案。