python 用map和reduce实现字符串转浮点数
作者:互联网
# -*- coding: utf-8 -*-
from functools import reduce
def str2float(s):
digits = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
def char2num(s):
return digits[s]
def to_int(x, y):
return x*10 + y
m = 0
for b in s:
if b == '.':
s1 = map(char2num, s[:m])
s2 = map(char2num, s[m+1:])
num1 = reduce(to_int, s1)
num2 = reduce(to_int, s2)/10**len(s[m+1:])
return num1+num2
break
m = m+1
print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
print('测试成功!')
else:
print('测试失败!')
标签:map,python,123.456,浮点数,reduce,char2num,str2float,int,print 来源: https://blog.csdn.net/qq_39972217/article/details/96714081