map/reduce
Topic source第三题
from functools import reduce
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def str2float(s):
s1,s2=s.split('.') #通过split函数将s分为整数部分和小数部分
def char2num(z):
return DIGITS[z] #将s1 s2通过DIGITS提取成整数
def fn(x,y):
return x*10+y #将提取出来的整数组合成一个数
L1=reduce(fn,map(char2num,s1))
L2=reduce(fn,map(char2num,s2))/10**len(s2)
return L1+L2
print('str2float(\'123.456\') =', str2float('123.456'))
if abs(str2float('123.456') - 123.456) < 0.00001:
print('测试成功!')
else:
print('测试失败!')
- 1
月球上的人
第一题