Discuss / Python / Ex.3

自己的方式

def str2float(s)
    def fn(n):
        pro = 1
        for i in range(n):
            pro = pro*10
        return pro
    def findp(s):
        index = 0
        while index < len(s):
            if s[index] == '.':
                break
            index = index+1
        return len(s)-index-1
    s1,s2 = s.split('.')
    return int(s1)+ int(s2)/fn(findp(s))

没有用到map和reduce

更改为

from functools import reduce
def str2float(s):    
    ss = s.split('.')                     
    return int(ss[0])+int(ss[1])/ (10 ** (len(s) - s.find(".") - 1))

  • 1

Reply