Discuss / Python / 题目(已测试,可以抛出非数字类型错误)

题目(已测试,可以抛出非数字类型错误)

Topic source

无虑43793

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

def str2num(s): try: return int(s) except ValueError as e: try: return float(s) except ValueError as e: logging.exception(e) raise

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