Python ValueError:无法将字符串转换为浮点型

时间:2020-11-12 19:49:51

标签: python numpy-ndarray

我有下面的代码,输入为h_ply =['0.12, 0.15, 0.2, 0.125']

h_ply = simpledialog.askstring('Laminate Properties','Ply Thickness')
try:
    h_layer_list = [int(x) for x in h_ply.split(',')] 
    h_layer = np.array(h_layer_list) * 0.001 

我也尝试过

h_ply1 = np.array(h_ply)
h_layer = h_ply1.astype(np.float) 

但是有同样的错误。

我正在尝试将h_ply列表放入np.array个Floats中。但是出现ValueError。 我了解这可能是因为每个数字都应该有'',而不仅仅是结尾吗?但理想情况下,我想避免这种情况变得更加用户友好。摆脱此错误消息的最佳方法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

处理此问题的方法是正确访问字符串。查看您的数据:

h_ply =(       # a tuple, containing ...
         [     # a single element, a list, containing ...
           [   # a single element, a list, containing ...
             '0.12, 0.15, 0.2, 0.125'     # ... a string that you have to split
           ]
         ]
       )

您必须剥离所有这些层才能到达字符串:

h_str = h_ply[0][0][0]

现在,您可以分割字符串并将元素转换为数值。您发布的代码试图拆分元组并进行转换。