shiyanwei 发表于 2022-9-2 16:29

python报错:'float' object is not iterable

本帖最后由 shiyanwei 于 2022-9-2 17:12 编辑

报这个错误i:TypeError: 'float' object is not iterable
请大神给指导一下,不太理解为什么会报这个错。



```python
from pyecharts.charts import Bar
with open(r'D:\Downloads\sxgangwei.txt','r',encoding='utf-8') as qq:
    neirong = qq.readlines()
# a = print(neirong)
dictCity = {}
for i in neirong:
    if i == '薪资面议' :
      continue
    # print(i)
    city = i.split(",")
    salary = i.split(",")
    daily = salary.split("/")
    # print(city,daily)
    avg1 = daily.split("-")
    avg2 = daily.split("-")
    avg = (int(avg1)+int(avg2))/2
    # print(avg)
    if city not in dictCity.keys():
      dictCity = []
    dictCity.append(avg)
    print(dictCity)
    for key,value in dictCity.items():
      print(key)
      print(value)
      avg_value = sum(value)//len(value)
      dictCity= avg_value
    print(dictCity)

bar = Bar()
bar.add_xaxis(list(dictCity.keys()))
bar.add_yaxis("各城市薪资",list(dictCity.values()))
bar.render("salary.html")
```

冬酒暖阳 发表于 2022-9-2 17:10

报错截图发下?不知道是哪一行出的问题啊

shiyanwei 发表于 2022-9-2 17:13

冬酒暖阳 发表于 2022-9-2 17:10
报错截图发下?不知道是哪一行出的问题啊

好的,已上传,是25行代码造成的

charleskao 发表于 2022-9-2 17:33

sum(value)先赋值给一个变量

grekevin 发表于 2022-9-2 17:37

len(s)
返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。

wynanwong 发表于 2022-9-2 17:41

sum()方法接收的参数是需要可迭代的,现在报错是说float不可迭代,证明传入的是一个float。

hrpzcf 发表于 2022-9-2 17:44

第 25 行 value 应该被赋值为一个浮点数了,你都 print 出来了应该看得见

shiyanwei 发表于 2022-9-2 17:58

charleskao 发表于 2022-9-2 17:33
sum(value)先赋值给一个变量

那么该如何修改呢?

ylww 发表于 2022-9-2 18:13

第25行前边都打印出value的值了,看看是不是可迭代对象

Harold123 发表于 2022-9-2 18:14

sum()的参数要是可迭代对象, 很明显你某个 value 值是 float类型 , 不可迭代就报错了.
你改成可迭代的对象不就好了
页: [1] 2
查看完整版本: python报错:'float' object is not iterable