Discuss / Python / 估计第三题我是最麻烦的哈哈 能做出来就好

估计第三题我是最麻烦的哈哈 能做出来就好

Topic source
def str2float(s):
    weizhi=s.find('.')
    zhengshu=s[:weizhi]
    xiaoshu=s[weizhi+1:]
    def s2z(s):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
    def f1(x,y):
        return 10*x+y
    def f2(x,y):
        return x/10+y
    zs=reduce(f1,map(s2z,zhengshu))
    y=len(s)-1-weizhi
    xs=reduce(f1,map(s2z,xiaoshu))/(10**y)
    return zs+xs
def str2float(s):    
    def char2num(s):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
    return reduce(lambda x,y:x*10+y,map(char2num,[x for x in s if x!="." ]))/abs(10**s.find('.'))

  • 1

Reply