# your code goes here
operators = ['-', '+', '*', '/']
def whitespace(s, pos):
while s[pos] in [' ', '\n', '\t', '\r']:
pos += 1
return pos
def num(s, pos):
buf = []
while pos < len(s) and s[pos].isdigit():
buf.append(s[pos])
pos += 1
return (''.join(buf), pos)
def flt(s, pos):
n, pos = num(s, pos)
if s[pos] == '.':
pos += 1
n2, pos = num(s, pos)
return n + '.' + n2, pos
return n, pos
def op(s, pos):
if s[pos] in operators:
pos += 1
return pos
def parse(string):
pos = whitespace(string, 0)
num1, pos = flt(string, pos)
pos = whitespace(string, pos)
pos = op(string, pos)
pos = whitespace(string, pos)
num2, pos = flt(string, pos)
return [num1, num2]
print parse("4.7 + 4.1")[1]
print parse("4.7 - 4.2")[1]
print parse("4.7 * 4.3")[1]
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCm9wZXJhdG9ycyA9IFsnLScsICcrJywgJyonLCAnLyddCgpkZWYgd2hpdGVzcGFjZShzLCBwb3MpOgoJd2hpbGUgc1twb3NdIGluIFsnICcsICdcbicsICdcdCcsICdcciddOgoJCXBvcyArPSAxCglyZXR1cm4gcG9zCgkKZGVmIG51bShzLCBwb3MpOgoJYnVmID0gW10KCXdoaWxlIHBvcyA8IGxlbihzKSBhbmQgc1twb3NdLmlzZGlnaXQoKToKCQlidWYuYXBwZW5kKHNbcG9zXSkKCQlwb3MgKz0gMQoJcmV0dXJuICgnJy5qb2luKGJ1ZiksIHBvcykKCQpkZWYgZmx0KHMsIHBvcyk6CgluLCBwb3MgPSBudW0ocywgcG9zKQoJaWYgc1twb3NdID09ICcuJzoKCQlwb3MgKz0gMQoJCW4yLCBwb3MgPSBudW0ocywgcG9zKQoJCXJldHVybiBuICsgJy4nICsgbjIsIHBvcwoJcmV0dXJuIG4sIHBvcwoJCmRlZiBvcChzLCBwb3MpOgoJaWYgc1twb3NdIGluIG9wZXJhdG9yczoKCQlwb3MgKz0gMQoJcmV0dXJuIHBvcwoJCmRlZiBwYXJzZShzdHJpbmcpOgoJcG9zID0gd2hpdGVzcGFjZShzdHJpbmcsIDApCgludW0xLCBwb3MgPSBmbHQoc3RyaW5nLCBwb3MpCglwb3MgPSB3aGl0ZXNwYWNlKHN0cmluZywgcG9zKQoJcG9zID0gb3Aoc3RyaW5nLCBwb3MpCglwb3MgPSB3aGl0ZXNwYWNlKHN0cmluZywgcG9zKQoJbnVtMiwgcG9zID0gZmx0KHN0cmluZywgcG9zKQoJcmV0dXJuIFtudW0xLCBudW0yXQoJCnByaW50IHBhcnNlKCI0LjcgKyA0LjEiKVsxXQpwcmludCBwYXJzZSgiNC43IC0gNC4yIilbMV0KcHJpbnQgcGFyc2UoIjQuNyAqIDQuMyIpWzFd