Discuss / Python / 本题的两种改写,不过没用错误处理的知识……

本题的两种改写,不过没用错误处理的知识……

Topic source

Miss小鸣

#1 Created at ... [Delete] [Delete and Lock User]
# 方法一
from functools import reduce
def calc(exp):
    ss = exp.split('+')
    ns = map(lambda s: float(s), ss)                 # 用两个高阶函数配合lambda 写出来的代码真的是赏心悦目!
    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()
# 方法二(妙用eval())   
print('100 + 200 + 345 =', eval('100 + 200 + 345 '))
print('99 + 88 + 7.6 =', eval('99 + 88 + 7.6 '))

eval三个参数的用法 eval使用举例


  • 1

Reply