Discuss / Python / 感觉做的有点啰嗦了。。。

感觉做的有点啰嗦了。。。

Topic source

# -*- coding: utf-8 -*-

from functools import reduce

def str2float(s):

    Dig={'1':1, '2':2, '3':3, '4':4, '5':5, '6':6}

    def char2int(ss):

        return Dig[ss]

    n=s.find('.')

    def multiple(x, y):

        return 10*x+y

    qian=reduce(multiple, map(char2int, s[:n]))

    hou=reduce(multiple, map(char2int, s[n+1:]))/10**len(s[n+1:])

    return qian + hou

print('str2float(\'123.456\') =', str2float('123.456'))

if abs(str2float('123.456') - 123.456) < 0.00001:

    print('测试成功!')

else:

    print('测试失败!')


  • 1

Reply