Сложная встроенная функция в Python - PullRequest
0 голосов
/ 13 июня 2018

Я читаю данные из файла, поэтому у меня есть значение, скажем,

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

Затем я использую complex (), чтобы преобразовать строку в комплексное число.Но это показывает ошибку.

ValueError: complex () arg - неправильная строка

Я не мог понять почему.Номер не содержит пробелов.Просьба предложить некоторые меры по устранению этой ошибки.

1 Ответ

0 голосов
/ 13 июня 2018

Из документов: 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 () автоматически конвертирует строки в научной нотации в float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...