def eval(expression: str, globals: dict[str:object] = None, locals: dict[str:object] = None) -> object
eval
prend en entrée une chaîne de caractères représentant une expression Python valide et évalue cette expression.
>>> a = 10 >>> eval("3 * a + 5") 35 >>> >>> import math >>> eval("math.sqrt(x ** 2 + y ** 2)", None, {"x": 10, "y": 20}) 22.360679774997898 >>>
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.
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ètre | Description |
---|---|
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. |
La valeur de retour est de type object.
Elle correspond à la valeur résultante de l'évaluation de l'expression.
NameError :Une exception de ce type sera déclenchée si l'expression utilise une variable non définie dans l'un des deux dictionnaires.
SyntaxError :Une exception de ce type sera déclenchée si le premier paramètre n'est pas une expression Python syntaxiquement valide.
TypeError :Une exception de ce type sera déclenchée si au moins l'un des deux paramètres
globals
ou locals
n'est pas un dictionnaire ou None
.
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)) |
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 $>
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 :