from functools import reduce def a_int(x): return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[x] def b_int(x,y): return 10x+y def str2float(s): a=0 for x in s: if x=='.': break else: a=a+1 d=a+1#小数点的位置 p = len(s) - d# 小数的个数 s = s[:a] + s[d:]#去除小数点 return reduce(b_int,map(a_int,s))/(10**p) print('str2float(\'123.456\') =', str2float('123.456'))
Sign in to make a reply
逸墨初弦_962
-- coding: utf-8 --
from functools import reduce def a_int(x): return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[x] def b_int(x,y): return 10x+y def str2float(s): a=0 for x in s: if x=='.': break else: a=a+1 d=a+1#小数点的位置 p = len(s) - d# 小数的个数 s = s[:a] + s[d:]#去除小数点 return reduce(b_int,map(a_int,s))/(10**p) print('str2float(\'123.456\') =', str2float('123.456'))