#str-->float
from functools import reduce
def str2float(s):
def char2num(s):
return {'0':10,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
def fn(x,y):
return x*10+y
return reduce(fn,map(char2num,s.split('.')[0]))+(reduce(fn,map(char2num,s.split('.')[1])))*10**-(len(s.split('.')[1]))
与整数转换方法一样,主要是用split
把浮点数拆开形成二元数组,再进行处理