![](/img/trans.png)
[英]How do I have a value that can be both a floating decimal point or a string in python?
[英]How can I extract a floating point value from a string, in python 3?
string = 概率为 0.05 如何在变量中提取 0.05 浮点值? 文件中有很多这样的字符串,我需要找到平均概率,所以我使用了'for'循环。 我的代码:
fname = input("enter file name: ")
fh = open(fname)
count = 0
val = 0
for lx in fh:
if lx.startswith("probability"):
count = count + 1
val = val + #here i need to get the only "float" value which is in string
print(val)
import re
string='probability is 1'
string2='probability is 1.03'
def FindProb(string):
pattern=re.compile('[0-9]')
result=pattern.search(string)
result=result.span()[0]
prob=string[result:]
return(prob)
print(FindProb(string2))
好的,所以。 这是使用正则表达式(又名 Regex aka re)库
它基本上设置了一个模式,然后在一个字符串中搜索它。 这个 function 接受一个字符串并找到字符串中的第一个数字,然后返回变量 prob ,它是从第一个数字到结尾的字符串。
如果您需要多次查找概率,则可以这样做:
import re
string='probability is 1'
string2='probability is 1.03 blah blah bllah probablity is 0.2 ugggggggggggggggg probablity is 1.0'
def FindProb(string):
amount=string.count('.')
prob=0
for i in range(amount):
pattern=re.compile('[0-9]+[.][0-9]+')
result=pattern.search(string)
start=result.span()[0]
end=result.span()[1]
prob+=float(string[start:end])
string=string[end:]
return(prob)
print(FindProb(string2))
需要注意的是,一切都必须有一个句点,所以 1 必须是 1.0 但这应该不是太大的问题。 如果是,请告诉我,我会设法找到方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.