import logging from functools import reduce def str2num(s): if isinstance(s,int): return int(s) else: return float(s) def calc(exp): ss = exp.split('+') ns = map(str2num, ss) return reduce(lambda acc, x: acc + x, ns) def main(): try: r = calc('100 + 200 + 345') print('100 + 200 + 345 =', r) r = calc('99 + 88 + 7.6') print('99 + 88 + 7.6 =', r) except Exception as e: logging.exception(e) main() print('END')
你的这个函数
isinstance(s,int)
计算的结果肯定不管怎么样都是false啊,因为参数s是列表ss传过来的元素,全是字符串,所以肯定全部都else了,纯粹多此一举。还有你引用这个logging库的意义何在?就这么喜欢码屎山吗兄弟?
看起来没啥问题,用其他数据跑也没啥问题,结果也没啥问题,实现过程乍一看没啥问题😂这个题出的有水平s={str}'99',误导我这样的新手以为99是int
Sign in to make a reply
sy107@CHINA