KeyError异常: ''将数字解析为字符串时

时间:2018-03-23 09:09:12

标签: python-3.x

当我运行我的代码时,它会生成KeyError

from functools import reduce   
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

def str2float(s):
    dot_index=s.index('.')
    new_str = s[:dot_index]+s[dot_index:]
    print(new_str)
    return reduce(lambda x,y:x*10+y,map(lambda x:DIGITS[x],new_str))/(10**(len(new_str)-dot_index))

num = str2float('123.456')
print(num)

2 个答案:

答案 0 :(得分:0)

Casting to float将解决您的问题:

    numberInString = "123.456"
    numberInFloat = float(numberInString)

变量“numberInFloat”是一个浮点变量。 如果你想要一个整数使用int(),str()表示字符串。

答案 1 :(得分:0)

在解析搅动"123.456"时,您的代码会遇到'.'字符,该字符不在您的词典中。