簡體   English   中英

如何在 python 3 中從字符串中提取浮點值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM