def str2float(s):
digits = {'0': 0, '1': 1.0, '2': 2.0, '3': 3.0, '4': 4.0, '5': 5.0, '6': 6.0, '7': 7.0, '8': 8.0, '9': 9.0}
def s2f(x):
return digits[x]
def ten(z,y):
return z*10+y
n=len(s)
i=0
while s[i]!='.':
i=1+i
s1=reduce(ten, map(s2f,s[:i]))
s2=reduce(ten,map(s2f,s[i+1:n]))*0.1**len(s[i+1:n])
return s1+s2
Sign in to make a reply
用户6513242808
def str2float(s):
digits = {'0': 0, '1': 1.0, '2': 2.0, '3': 3.0, '4': 4.0, '5': 5.0, '6': 6.0, '7': 7.0, '8': 8.0, '9': 9.0}
def s2f(x):
return digits[x]
def ten(z,y):
return z*10+y
n=len(s)
i=0
while s[i]!='.':
i=1+i
s1=reduce(ten, map(s2f,s[:i]))
s2=reduce(ten,map(s2f,s[i+1:n]))*0.1**len(s[i+1:n])
return s1+s2