看了前面大神写的文章和代码,不知道自己在重要地方理解对不对,希望有大神给指点一下。
from functools import reducedef str2float(num):
def pro(x,y):
return 10*x+y
n=num.index('.')
#取小数点所在的位置
str1=list(map(int,[x for x in num[:n]]))
#x for x in num[:n]将num映射成list,将num中小数点前的数字映射出来
str2=list(map(int,[x for x in num[n+1:]]))
#x for x in num[n+1:]将num映射成list,将num中小数点后的数字映射出来
return reduce(pro,str1)+reduce(pro,str2)/(10**len(str2))
print('\'123.4567\'=',str2float('123.4567'))