eval() Executar expressão
Última atualização: 2026-09-22
eval() Executar expressão
eval() executa uma expressão Python contida em uma string e retorna o resultado. **Aviso de segurança**: não use eval para processar entradas não confiáveis.
| Categoria | Funções internas |
|---|---|
| Tipo | Função interna |
| Versão do Python | all |
📝 Sintaxe
eval(expression[, globals[, locals]])
⚙️ Parâmetros
| expression Obrigatório | A Python expression string or code object. |
|---|---|
| globals Opcional | The global namespace dict.(Padrão:None) |
| locals Opcional | The local namespace dict.(Padrão:None) |
Retorno:The result of evaluating the expression.
💥 Exceções
SyntaxError— Raised when the expression has a syntax error.NameError— Raised when the expression references an undefined name.TypeError— Raised when globals or locals is not a dict.
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
15
1024
⚠️ Aviso eval pode executar código arbitrário; em ambiente de produção, use ast.literal_eval em seu lugar.
🏷️ Funções internas relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QQual é a diferença entre eval() e exec()?
Aeval() executa uma única expressão e retorna o resultado (ex.: eval('1 + 2') retorna 3); exec() executa declarações e blocos (if, for, def etc.) e retorna None.
QO que acontece com eval('x = 1')?
ALevanta SyntaxError. Atribuição é uma declaração, não uma expressão; eval() só pode avaliar expressões — para executar declarações use exec().
QPor que não devo usar eval para processar entrada do usuário?
Aeval() pode executar código arbitrário, como a string eval("__import__('os').system('dir')"); para analisar entrada do usuário use ast.literal_eval, que só trata literais.
QPosso usar variáveis externas dentro do eval?
APor padrão sim (usa os namespaces global/local atuais); também é possível passar namespaces personalizados via argumentos globals/locals para restringir os nomes acessíveis à expressão.