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 fn(x, y): return x * 10 + y #字符转换函数 def char2num(s): return DIGITS[s] #提取字符串中所有的数字和小数点组成的列表 li = list(map(char2num, s)) #获取列表中小数点的索引 dotIndex = li.index('.') #获取小数点前面的纯数字列表,表示原浮点数的整数部分 list1 = li[:dotIndex] #获取小数点后面的纯数字列表,表示原浮点数的小数部分 list2 = li[dotIndex + 1:] #拼接上面两个列表为一个纯数字的列表,表示将原浮点数变为去掉了小数点的纯整数 list3 = list1 + list2 #将该纯数字列表转为整数 result = reduce(fn, list3) #通过迭代小数点后面的数字,计算原浮点数的值 for i in list2: result = result/10 #返回结果 return result
Sign in to make a reply
biggerdream
def str2float(s):