在s string-Python中查找浮点

在s string-Python中查找浮点,python,string,floating-point,Python,String,Floating Point,这个很简单,我有一个字符串“电压是E=200V,电流是I=4.5A”。我需要提取两个浮点值。我曾尝试使用float()函数(参数中的子字符串为11到16),但出现了一个错误。我意识到这可能不是很好的编码,我正处于尝试学习Python的开始阶段。非常感谢您的帮助 编辑:这是代码 I = 0.0 if((currentString.find('I=')) != -1): I = float(currentString[(currentString.find('I='

这个很简单,我有一个字符串“电压是E=200V,电流是I=4.5A”。我需要提取两个浮点值。我曾尝试使用float()函数(参数中的子字符串为11到16),但出现了一个错误。我意识到这可能不是很好的编码,我正处于尝试学习Python的开始阶段。非常感谢您的帮助

编辑:这是代码

I = 0.0     
if((currentString.find('I=')) != -1):
            I = float(currentString[(currentString.find('I=')):(currentString.find('A'))])

同样,我对这门语言还不熟悉,我知道它看起来很难看。

我不愿意提及正则表达式,因为它对于新手来说常常是一个令人困惑的工具,但为了您的使用和参考,这里有一个片段可以帮助您获得这些值。IIRC电压不太可能是浮动的(而不是int?),因此此匹配操作稍后返回int,但如果确实需要,可以是浮动的

>>> import re
>>> regex = re.compile(r'.*?E=([\d.]+).*?I=([\d.]+)')
>>> re.match('voltage is E=200V and the current is I=4.5A')
>>> matches = regex.match('voltage is E=200V and the current is I=4.5A')
>>> int(matches.group(1))
200
>>> float(matches.group(2))
4.5
使用更简单的工具提取此类数字的方法是:

>>> s.find('E=')
11
>>> s.find('V', 11)
16
>>> s[11:16]
'E=200'
>>> s[11+2:16]
'200'
>>> int(s[11+2:16])
200

你能给我们看看你的密码吗<代码>s='200';浮点数应起作用。子串为
E=200V
,不是有效的浮点数。您需要更加具体,需要包含代码,还需要包含回溯时出现的错误。我不确定这是否适用于您:。如果您遇到任何错误,请详细告诉我们。@George和Niklas,基本上我必须搜索字符串并返回找到的浮点值。我真的不知道该怎么做,这就是为什么我需要帮助。错误为:ValueError:无法将字符串转换为浮点:“I=4.5A”。我理解为什么不能这样做,我只是想不出如何提取浮点值。谢谢大家,float I=0.0将生成语法错误。谢谢!我有点疯了,我想不出这个:/,但非常感谢,如果电压或电流可以为负,你可能想在[]之间加上“-”。我不是电气工程师