将字符串转换为复数python

Ade*_*ipo 4 python string complex-numbers python-3.x

我试图将输入的字符串转换为浮点数,但当我这样做时,我不断得到某种错误,所以下面是我做的样本.我很确定我没有做错任何事,但如果你发现任何错误

     >>> a = "3 + 3j"
     >>> b=complex(a)
    >>> 
    ValueError: complex() arg is a malformed string
    >>> Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
     c= complex("3 + 3j")
    >>> 
    ValueError: complex() arg is a malformed string
    >>> Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
Run Code Online (Sandbox Code Playgroud)

PS,这不是我试图写一个样本的实际代码

Fra*_*uzo 8

文档:

注意

从字符串转换时,字符串不得包含中心+或 - 运算符周围的空格.例如,complex('1+2j')很好,但complex('1 + 2j')提高ValueError.


Dan*_*ina 7

根据Francisco Couzo的回答,文档说明了这一点

从字符串转换时,字符串不得包含中心+或 - 运算符周围的空格.例如,复数('1 + 2j')很好,但复数('1 + 2j')引发ValueError.

删除字符串中的所有空格,你会完成它,这段代码适合我:

a = "3 + 3j"
a = a.replace(" ", "") # will do nothing if unneeded
b = complex(a)
Run Code Online (Sandbox Code Playgroud)


Sha*_*ger 6

complex的构造函数拒绝嵌入的空格。删除它,它会正常工作:

>>> complex(''.join(a.split()))  # Remove all whitespace first
(3+3j)
Run Code Online (Sandbox Code Playgroud)