Discuss / Python / 作业,写了两题,第三题抄大佬的(思路一样),实在不知道小数点怎么处理

作业,写了两题,第三题抄大佬的(思路一样),实在不知道小数点怎么处理

Topic source

def normalize(name): name=name[:1].upper()+ name[1:].lower() return name

def prod(L): return reduce(lambda x, y: x*y, L)

第三题抄大佬的,但是思路是一样的,就是不知道小数点怎么处理,原来是用index()来处理,学习了
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 str2float(string): def char2int(c): return digits[c] dot = string.index('.') part1 = string[:dot] part2 = string[dot+1:] d1 = reduce(lambda x,y: x10 + y, map(char2int, part1)) d2 = reduce(lambda x,y: x10 + y, map(char2int, part2)) / (10**(len(string)-1-dot)) return d1+d2


  • 1

Reply