Discuss / Python / 定位加法出错误源头,并修复:

定位加法出错误源头,并修复:

Topic source

灿_Clarence

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

from functools import reduce

def str2num(s):

    try:

        ss=int(s)

    except ValueError as e:

        print('ValueError:',e)

        ss=float(s)

    return ss

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