0

什么类型是 a val_dict.get(filename)[1]?我不断收到这个 Typeerror,告诉我它是一个 NoneType:

TypeError: unsupported operand type(s) for *: 'float' and 'NoneType'

当我尝试使用此行运行脚本时:

water = (float(x1[count]) * (val_dict.get(filename[1])) 

我不断收到错误。我试过打电话给float, intand str,但显然没有帮助。

我编写了一个脚本来从 Excel 电子表格中导入某些值并对其进行缩放。之后,我的脚本应该将这些值提取到一个新的 excel 电子表格中,我认为最简单的方法是将所有数据存储在一个字典中,如下所示:

        val_dict[filename] = [model, lenghtvalue, dispvalue, Froudemax, Froudemin]

return val_dict

val_dict = locate_vals()
print val_dict
#output:
{'C:/eclipse/TST-folder\\Test spreadsheet model 151B WL3.xls': [u'M151B', 14.89128, 316.29, 1.0, 0.4041900066850382], 'C:/eclipse/TST-folder\\FolderA\\Test spreadsheet model 151 WL1 Lastet.xls': [u'M151', 14.672460000000001, 316.28887, 1.0, 0.4041900066850382]}

如果有趣的话,x1-list 的输出如下所示:

[0.35714285714285715, 0.35714285714285715] [1.5845602477694463e-07, 1.5845602477694463e-07]
4

2 回答 2

1

val_dict[filename]是一个可以索引的数组,但filename不是。

PS 我认为下面的图片可能会有所帮助(来自博客文章29 个常见的初学者 Python 错误在一页上)。

一页上的 29 个常见的初学者 Python 错误

于 2013-08-08T09:20:14.917 回答
0

问题是这一行:

water = (float(x1[count]) * (val_dict.get(filename[1]))

应该是:

water = (float(x1[count]) * (val_dict.get(filename)[1]))
于 2013-08-08T09:10:29.103 回答