TypeError: 使用 WHILE 时 'float' 对象不可遍历

0 投票
1 回答
741 浏览
提问于 2025-04-17 16:27

你好,

我正在尝试做一个简单的循环,想要生成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_1alfa_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)。这里的目标不太清楚,所以我无法提供更完整的解决方案。

撰写回答