Discuss / Python / 前面那个不完整……再来一次(评论似乎不能删除?)

前面那个不完整……再来一次(评论似乎不能删除?)

Topic source

小神CaT

#1 Created at ... [Delete] [Delete and Lock User]
# -*- coding: utf-8 -*-
from functools import reduce

def str2float(s):
    L = ''.join(s.split('.'))
    def char2num(L):
        digits = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
        return digits[L]
    def fn(x,y):
        return x * 10 + y
    def dotnum(s):
        m = s.index('.')
        n = len(s) - m - 1
        k = 1
        for i in range(n):
            k = k * 10
        return k
    return reduce(fn,map(char2num,L))/dotnum(s)

  • 1

Reply