python学习(一)

小记python map reduce简单实现字符串转浮点型数据

python 版本:3.9.0

#!/usr/bin/python3
# -*- coding: utf-8 -*-
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 f(s):
    return DIGITS[s]

def str2int(s):
    l = list(s) #转换为list做处理,否则下方.index会报错
    i = l.index('.') 
    print('i = ',i)
    l = l[:i]+l[i+1:len(l)] # 截取'.'号前后重拼,也可以使用l.replace('.','' '')处理
    return reduce(lambda x, y: x * 10 + y, map(f,l)) * ( 0.1 ** (len(l) - i)) #

print(str2int('1234.5678')) #注意返回结果为1234.5678000000003。因为计算机的二进制限制,导致此问题出现
posted @ 2020-10-19 16:12  生尘一  阅读(40)  评论(0编辑  收藏  举报