Discuss / Python / ....

from functools import reduce

#int('7.6')报错

def str2num(s): if '.' not in s: return int(s) else: s1=s.split('.') s=int(s1[0])+(0.1*len(s1[1])int(s1[1])) return s

def calc(exp): ss = exp.split('+') ns = map(str2num, ss) return reduce(lambda acc, x: acc + x, ns)

def main(): r = calc('100 + 200 + 345') print('100 + 200 + 345 =', r) r = calc('99+88+7.6') print('99 + 88 + 7.6 =', r)

main()


  • 1

Reply