Discuss / Python / 第三题

第三题

Topic source

鬼寿

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

处理小数点还是有些繁琐,有更好的办法吗?

def str2float(string): from functools import reduce def char2num (a): return { '1' : 1, '2' : 2, '3' : 3, '4' : 4, '5' : 5, '6' : 6, '7' : 7, '8' : 8, '9' : 9, '0' : 0, '.' : '.' }[a] def fn(x, y): return x 10 + y product = reduce(fn, map( char2num, [char for char in string if char != '.' ])) n = 1 m = 1 i = 0 for i in range(len(string)): m = m n if string[i] == '.': n = 10 return product/m

鬼寿

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

处理小数点还是有些繁琐,有更好的办法吗?

def str2float(string): from functools import reduce def char2num (a): return { '1' : 1, '2' : 2, '3' : 3, '4' : 4, '5' : 5, '6' : 6, '7' : 7, '8' : 8, '9' : 9, '0' : 0, '.' : '.' }[a] def fn(x, y): return x * 10 + y product = reduce(fn, map( char2num, [char for char in string if char != '.' ])) n = 1 m = 1 i = 0 for i in range(len(string)): m = m * n if string[i] == '.': n = 10 return product / m


  • 1

Reply