Например так, если я вас правильно понял:
>>> def my_func(express, args):
... return eval(express % args)
...
>>> print my_func('%(a)d+%(b)d', {'a': 2, 'b': 3})
5
>>> print my_func('%(c)d*%(d)d', {'c': 4, 'd': 5})
20
ну либо если брать конкретно ваш пример - то как-то так:
>>> def my_sum(myargs):
... my_vars = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'i': 0}
... for im in myargs.keys():
... my_vars[im]=myargs[im]
... return eval('%(a)d+%(b)d+%(c)d+%(d)d+%(i)d' % my_vars)
...
>>> print my_sum({'a': 5, 'c': 2})
7