Discuss / Python / 可行,但是比较繁琐,定义的函数较多。

可行,但是比较繁琐,定义的函数较多。

Topic source

Ashen One

#1 Created at ... [Delete] [Delete and Lock User]

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)


  • 1

Reply