from functools import reduce def str2float(s): def add(x,y): return x * 10 + y def char2num(ch): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[ch] s_l,s_r = s.split('.') if s_l[0]=='-': s_l = s_l[1:] num_r = reduce(add,map(char2num,s_r)) num_r = num_r * 0.1 ** len(s_r) num_l = reduce(add,map(char2num,s_l)) if s[0]=='-': return -(num_r + num_l) else: return num_r + num_l print('str2float(\'123.456\') =', str2float('123.456'))
Sign in to make a reply
千年C