将分数转换为十进制(分数以上标为单位)

时间:2016-07-04 09:17:43

标签: python

我正在从网站上提取文字,并希望将这些分数转换为小数。

分数在下标中,看起来像下面的

1.25,41/2

可以解决这个问题吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

dict = {
    '¼':0.25,
    '½':0.50,
}

def Convert(line):
    return [int(word[:-1])+dict[word[-1]] if word[-1] in dict else int(word) for word in line.split(',')]

如果您有任何其他此类符号,只需将其添加到dict

答案 1 :(得分:0)

建立在@barak manos'想法,我会去寻找每一行中的所有字典键,并在网站上替换它们:

dict = {
    '¼': '.25',
    '½': '.50',
}    

def convert(line, dict):
    for x in dict:
        line = line.replace(x, dict[x])
        line = line.replace(' ' + dict[x], ' 0' + dict[x])
    return line

a = '1¼ ½ 564as 25½'
print(convert(a,dict)) # returns: '1.25 0.50 564as 25.50'

您在句子中寻找的角色的位置和/或周围是否存在整数是无关紧要的。

答案 2 :(得分:-1)

您必须从文本中解析这些数字(依赖编码),使用示例某些解析器组合或类似。然后你可以计算小数。