# -*- coding: utf-8 -*- # 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456: from functools import reduce i = 0 def str2float(s): def add(s, s1): global i if isinstance(s, int) and isinstance(s1, int) and (i == 0): return s * 10 + s1 elif isinstance(s, int) and i ==0: i = 1 return s elif isinstance(s1, int) or isinstance(s1, float) : i = i + 1 i1 = i while i1 > 1: s1 = s1 / 10 i1 = i1 - 1 return float(s) + s1 def int1(s2): if s2 == '.': return '.' else: return int(s2) return reduce(add, map(int1, s)) # print(list(map(int1,'123.456'))) result = str2float('123.456') print('str2float(\'123.456\') =', result) if abs(result - 123.456) < 0.00001: print('测试成功!') else: print('测试失败!')
eval函数也可以,https://blog.csdn.net/qq_29883591/article/details/53443062
print(eval("123.456"))
Sign in to make a reply
Earth奇人