python - 字符串格式化,科学记数法在 Python 中 float

标签 python string sorting math

<分区>

我正在使用 python,我对它还很陌生,可以通过一些指导来解决我认为是字符串格式问题的问题。

我有一个外部程序的输出,我想将其“翻译”成 float 。输出包含两个数字,它们可能是也可能不是科学计数法,小数点后最多可以有 15 位数字(我在这里省略了)。

(-1.040e-05+3.1676e-03j) 我希望它变成两个独立的数字 -0.00001040 , 0.0031676

当前无用形式的输出数据的其他示例如下 (0.0572636-0.419420j) 将变为 0.0572636 , -0.419420 (0.000194+4.85091e-05j)

我的目标是取每对括号中包含的两个数字,将它们平方并相加。如果结果是科学记数法中的两个数字,那很好,只要我能够对它们执行数学运算。此外,减号不需要在转换后继续存在,因为当我对它进行平方时它会消失。如果这能让事情变得更容易。

我目前采用的方法是一种比较复杂和困惑的方法。使用 x.find 定位“e”、“-”和“+”,然后解释应提取字符串的哪些部分以形成数字。

我也不熟悉 re 模块,不确定如何使用它来提取正确的格式。

我们将不胜感激

最佳答案

您可以像这样在 Python 中解析复数:

>>> c=complex('-1.040e-05+3.1676e-03j')
>>> c.real
-1.04e-05
>>> c.imag
0.0031676
>>>

它也适用于 float 和整数:

>>> f=complex('100.01')
>>> f.real
100.01
>>> f.imag
0.0
>>>

关于python - 字符串格式化,科学记数法在 Python 中 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658466/

相关文章:

python - 如何在 python 中使用 selenium 从 RadioButtons 中进行选择?

python - Pandas to_sql() 更新数据库中的唯一值?

python - 为什么 Python 的 datetime.strftime ('%w' ) 和 datetime.weekday() 对星期几使用不同的索引?

C strcmp - 比较由 char 和 char* 声明的字符串

c++ - std::out_of_range 错误?

mysql - 复杂的 MySQL 排序

MySQL 关于排序大小和效率

python - 在子图之间画一条线

python - 如何使用递归但不使用 for 或 while 循环来获得不重复的字符串排列?

c - void function bubble_sort 不对数组进行排序