python中复杂的内置函数

时间:2018-06-13 07:10:33

标签: python-2.7

我正在读取文件中的数据,所以我有一个值,

a = '-1.179297799365114230e+01+-2.024886536109358204e+00j'

然后我使用complex()将字符串转换为复数。但它显示出错误。

ValueError:complex()arg是格式错误的字符串

我无法理解为什么。该号码不包括任何空格。 请提出一些措施来消除此错误。

1 个答案:

答案 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()函数自动将科学记数法中的字符串转换为浮点数。