我正在读取文件中的数据,所以我有一个值,
a = '-1.179297799365114230e+01+-2.024886536109358204e+00j'
然后我使用complex()将字符串转换为复数。但它显示出错误。
ValueError:complex()arg是格式错误的字符串
我无法理解为什么。该号码不包括任何空格。 请提出一些措施来消除此错误。
答案 0 :(得分:0)
来自文档:https://www.programiz.com/python-programming/methods/built-in/complex
The syntax of complex() is: complex([real[, imag]])
所以写一下:
a = '-1.179297799365114230e+01+-2.024886536109358204e+00j'
fragments = a.split('+')
real = float(fragments[0]+'+'+fragments[1])
imag = float(fragments[2]+'+'+fragments[3][:-1])
complex(real, imag)
这假设您将始终以科学记数法的形式给出复数作为字符串,如示例中所示。如果您不确定是否存在这种情况,您可能希望包括assert(len(a.split('+')) == 4)
等检查。 float()函数自动将科学记数法中的字符串转换为浮点数。