Discuss / Python / 第三题答案

第三题答案

Topic source

斥_斥

#1 Created at ... [Delete] [Delete and Lock User]

这题能做出来真是太不容易了。。。。好累

from functools import reduce

def str2float(s):
    def char2digital(s):
        return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'.':-1,}[s]
    def digital2int(a,b):
        return a*10+b

    i=len(s)-1
    while i>=0:
        if s[i]=='.':
            break
        i = i-1
    li=list(map(char2digital,s))
    li=li[:i]+li[i+1:len(li)];
    result = reduce(digital2int,li)
    result = result / (10 ** i)
    return result

  • 1

Reply