我遇到了以下代码行的问题:
underground['distributed_load_C'] = float(ugLineList[21])*1000 + ('+' if float(ugLineList[24]) >= 0.0 else '-') + abs(float(ugLineList[24]))*1000j
从ugLineList中提取的原始值是字符串,我尝试在添加之前键入将它们转换为浮点数。即使我尝试输入它们,我也会收到以下错误:
TypeError: unsupported operand type(s) for +: 'float' and 'str'
我已尝试在此语句之前输入类型,并检查代码段是否真正浮动:
print type(float(ugLineList[21])*1000), type(float(ugLineList[24]))
---&GT; <type 'float'> <type 'float'>
我真的很困惑这里发生了什么,所以非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
上面的注释(你要添加字符串'+'或' - '取决于ugLineList [24]的值)是完全正确的。假设您打算添加或减去
<<
基于对if语句的评估,您可以执行以下操作:
abs(float(ugLineList[24]))*1000j
希望这会有所帮助
答案 1 :(得分:1)
在尝试进行aritmetic操作时,看起来你有字符串
+ ('+' if float(ugLineList[24]) >= 0.0 else '-')
喜欢'+'
你真的需要这个条件吗?'+' if float(ugLineList[24]) >= 0.0
尝试阉割个体变量并使用它们进行操作,然后将所有变量放在一行
答案 2 :(得分:1)
我不确定你要通过检查值的符号然后执行abs
来尝试做什么,但我敢打赌你可以放弃它:
underground['distributed_load_C'] = float(ugLineList[21])*1000 + float(ugLineList[24])*1000j