Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « builtins » Python 3.11.1

Fonction eval - module builtins

Signature de la fonction eval

 def eval(expression: str, globals: dict[str:object] = None, locals: dict[str:object] = None) -> object

Description

La fonction eval prend en entrée une chaîne de caractères représentant une expression Python valide et évalue cette expression. L'évaluation peut se faire en tenant compte des deux contextes (global et local) passés eux aussi passés en paramètres.

>>> a = 10
>>> eval("3 * a + 5")
35
>>> 
>>> import math
>>> eval("math.sqrt(x ** 2 + y ** 2)", None, {"x": 10, "y": 20})
22.360679774997898
>>> 
il est fortement déconseillé d'utiliser la fonction eval en raison des risques de sécurité potentiels (injection de code Python non initialement prévus) et des problèmes de performance. Si vous l'utilisez tout de même, soyez alors conscient des risques potentiels.

help(builtins.eval)

Evaluate the given source in the context of globals and locals.

The source may be a string representing a Python expression
or a code object as returned by compile().
The globals must be a dictionary and locals can be any mapping,
defaulting to the current globals and locals.
If only globals is given, locals defaults to it.

Paramètres

ParamètreDescription
 expression : str 
L'expression Python à évaluer.
 globals : dict[str, object] = None 
Un dictionnaire définissant les variables globales utilisées pour l'évaluation.
 locals : dict[str, object] = None 
Un dictionnaire définissant les variables locales utilisées pour l'évaluation.

Valeur de retour

La valeur de retour est de type object.

Elle correspond à la valeur résultante de l'évaluation de l'expression.

Exceptions

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
#!/usr/bin/python

expression = input("Quel calcule dois-je évaluer : ")
context = input("Quelles sont les variables : ")

context = [assoc.split("=") for assoc in context.split("&")]
context = {key:int(value) for key, value in context}

print(eval(expression, context))
Exemple d'utilisation de la fonction eval.

Et voici les résultats produits par cet exemple.

$> python sample.py
Quel calcule dois-je évaluer : a * 3 + b
Quelles sont les variables : a=10&b=5
35
$> 

Voir aussi

La fonction compile
La fonction exec
La fonction globals
La fonction locals