Discuss / Python / 我的答案,请大家指教。

我的答案,请大家指教。

Topic source

冯征sh

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

from functools import reduce

def str2num(s):

    try:

        num=int(s)  # 尝试将s字符串转成整数型数值并赋值给num

    except:

        num=float(s)  # 如果转成整数型报错则转成浮点型并赋值给num

    finally:

        return num  # 最终return num,捕获报错语句3件套完整练习

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