from functools import reduce
def str2num(s):
if s.count('.')==1:
s1=int(s[:s.index('.')])
s2=int(s[s.index('.')+1:])/((len(s)-(s.index('.')+1))*10)
return s1+s2
return int(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()
from functools import reducedef str2num(s): try: return int(s) except : return 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()
Sign in to make a reply
永恒之约bo
from functools import reduce
def str2num(s):
if s.count('.')==1:
s1=int(s[:s.index('.')])
s2=int(s[s.index('.')+1:])/((len(s)-(s.index('.')+1))*10)
return s1+s2
return int(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()