从复数" 92 + 23i"中获取想象和真实的价值部分?

时间:2018-03-28 19:13:21

标签: python string numbers extract

我想从字符串中提取数字并将它们存储在不同的变量中。

例如: - "92+23i"是一个复数。我想在变量num_real中存储92,在num_imagin中存储23。

2 个答案:

答案 0 :(得分:2)

Python的预定义类型为complex但是它希望字符串的类型为"a+bj" (注意j而不是i,它应该是没有空间)。在您的情况下,您可以将"i"替换为字符串中的"j",并获得所需的值:

>>> my_str = "92+23i"
>>> my_num = complex(my_str.replace('i', 'j'))

从这个复数中,您需要使用my_num.imag为虚部提取所需的值,并使用my_num.real提取复数的实部。例如:

>>> my_num.imag
23.0
>>> my_num.real
92.0

答案 1 :(得分:1)

你的字符串非常接近解析为Python文字:

<ul></ul>

使用>>> s = '92+23i' >>> import ast >>> ast.literal_eval(s.replace('i', 'j')) (92+23j) num.real访问实部和虚部。