这样可以解决错误,但是不严谨(存在四舍五入问题).....
from functools import reduce def str2num(s): return int(float(s)) 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()
用这个方法解决四舍五入问题
def str2num(s): s = float(s)+0.5 return int(s)
Sign in to make a reply
Destiny_Raymond
这样可以解决错误,但是不严谨(存在四舍五入问题).....