gpt4 book ai didi

python - 如何使用 python 将数字的工程符号转换为方程中的科学符号

转载 作者:行者123 更新时间:2023-12-01 05:52:21 25 4
gpt4 key购买 nike

我有方程式字符串,其中所有数字都以工程符号表示,例如:

"(10u*myvar1)+(2.5f*myvar2)/myvar3"

我需要将此方程字符串中的所有数字转换为科学记数法,以便结果如下:

"(10e-6*myvar1)+(2.5e-15*myvar2)/myvar3"

有人知道如何使这个简单吗?

我认为用 re.findall 将其拆分为数字和其他内容,而不是修复数字并重新连接到字符串,这是最困难的方法。喜欢:

vals=re.findall('[\d.\w]+',param_value) #all numbers
operators=re.findall('[^\d.\w]+',param_value) #all not numbers

然后再处理这两个列表。但似乎太复杂了。我没有看到将这两个列表连接回字符串的简单方法。

最佳答案

您可以进行简单的正则表达式替换:

>>> units = 'munpf'
>>> def f(match):
num = match.group(0)
exp = -3 * (units.index(num[-1]) + 1)
return num[:-1] + '10e' + str(exp)

>>> expr = "(10u*myvar1)+(2.5f*myvar2)/myvar3"

>>> re.sub(r'\b\d+(\.\d*)?' + '[%s]' % units + r'\b', f, expr)
'(10e-6*myvar1)+(2.5e-15*myvar2)/myvar3'

如果您愿意,可以轻松扩展。

关于python - 如何使用 python 将数字的工程符号转换为方程中的科学符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com