Предложенный выше варианты - неполохи, но жестко завязаны на конкретные функции и даже их количество. Добавьте еще одну функцию - и надо вносить правки в скрипт. Что не есть хорошо.
Есть другой вариант. Пишем одну вспомогательную микрофункцию, которая будет читать ответ пользователя и в зависимости от первого слова вызывать функцию, имя которой совпадает с этим словом. Сделать это относительно просто. Но не все с таким хитрым способом знакомы.
Всего-то:
def ExecIt(func, param):
return func(param)
Тогда в самом скрипте достаточно вставить всего две строчки:
request = input('Enter your request: ')
ExecIt(globals()[request.split()[0]], request.split(maxsplit=1)[1])
и получить УНИВЕРСАЛЬНОЕ решение.
Единственное, что надо учесть - это то, что сами функции могут иметь разное количество параметров. Например, у ТС в функции sum их два, а в остальных один. А может быть и больше. Или меньше. Поэтому самый правильный путь - распарсить параметры в случае необходимости либо уже в самих функциях. Надеюсь, для ТС это не составит труда. В любом случае - это уже тема другого вопроса.