SobesLab логотип SobesLab

Ответ

`eval(expr)` вычисляет одно выражение и возвращает результат. `exec(stmt)` выполняет набор операторов (стейтментов) и всегда возвращает None. Проще: eval подходит для получения значения выражения из строки (например, вычислить математическое выражение), а exec позволяет выполнить произвольный код (например, строку с определением функции, циклом и т.д.). Exec гибче (может выполнять любую программу), но не возвращает результата. С точки зрения безопасности, оба несут риск, но exec ещё мощнее, т.к. выполняет и действия, а не только вычисления.