都是一步得出结果,没有把问题分解 from functools import reduce
def str2float(s): b=list(map(deal,s)) fr,bc=sp(b,'.')
return reduce(fix1,fr)+0.1*reduce(fix2,doge(bc))
def deal(i): sum=0 dic={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} if i=='.': return i elif dic.get(i,-1)!=-1: return dic[i]
def doge(lis): ll=[] for i in range(len(lis)): ll.append(lis[len(lis)-1-i]) return ll
def sp(lis,i): for a in range(len(lis)): if lis[a]==i: return lis[:a],lis[a+1:] return None
def fix1(a,b): return a*10+b
def fix2(a,b): return a*0.1+b
Sign in to make a reply
用户5824048131
都是一步得出结果,没有把问题分解 from functools import reduce
def str2float(s): b=list(map(deal,s)) fr,bc=sp(b,'.')
def deal(i): sum=0 dic={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9} if i=='.': return i elif dic.get(i,-1)!=-1: return dic[i]
def doge(lis): ll=[] for i in range(len(lis)): ll.append(lis[len(lis)-1-i]) return ll
def sp(lis,i): for a in range(len(lis)): if lis[a]==i: return lis[:a],lis[a+1:] return None
def fix1(a,b): return a*10+b
def fix2(a,b): return a*0.1+b