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 str_split(s): #根据'.',将字符串分成整数部分和小数部分
parts = s.split('.')
part_1 = parts[0]
part_2 = parts[1]
return part_1, part_2
def strToList(x): #调用字典,将字符串转换为数字
return digits[x]
def f(m,n):
return m * 10 + n
def strtofloat(): #返回的第一个值是整数部分,小数部分按照同样的方法生成后再除以10的相应次方就可以得到
return reduce(f,map(strToList,part_1)) , reduce(f,map(strToList,part_2))/10**len(part_2)
s = ('164551.14524')
part_1,part_2 = str_split(s)
float_part1 , float_part2 =strtofloat()
sum = float_part1 + float_part2 #整数部分和小数部分相加得到结果
print(sum)
Sign in to make a reply
Ashen One
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 str_split(s): #根据'.',将字符串分成整数部分和小数部分
parts = s.split('.')
part_1 = parts[0]
part_2 = parts[1]
return part_1, part_2
def strToList(x): #调用字典,将字符串转换为数字
return digits[x]
def f(m,n):
return m * 10 + n
def strtofloat(): #返回的第一个值是整数部分,小数部分按照同样的方法生成后再除以10的相应次方就可以得到
return reduce(f,map(strToList,part_1)) , reduce(f,map(strToList,part_2))/10**len(part_2)
s = ('164551.14524')
part_1,part_2 = str_split(s)
float_part1 , float_part2 =strtofloat()
sum = float_part1 + float_part2 #整数部分和小数部分相加得到结果
print(sum)