我正在与下面的代码行的问题:两个彩车抛出类型错误:不支持的操作数类型(S)为+:“浮动”和“STR”
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]))
- - ><type 'float'> <type 'float'>
我,什么是怎么回事,所以任何帮助感激真的很困惑。
谢谢!
你的代码最终是float + str + float。 str是“+”或“ - ”。你为什么要加'+'或' - '? – FamousJameous
这两个号码被转换为浮动,但它们之间的操作是一个字符串(即'“+”'或''-'')。您可能要重新制定了'if'语句,以便您专门检查'ugLineList [24]'为标志,然后通过明确使用正确的算术运算符做正确的操作。 – rayryeng
我有一种感觉,它是与if语句,类型转换,做术前检查标志工作的问题。事后看来,我不确定为什么我添加了添加或减少每个Alg_D答案的条件。感谢大家! – lewis2ba