Je souhaite que l'utilisateur saisisse une équation avec laquelle je peux travailler en Python. Comment puis-je modifier la formule raw_input qui me permet de faire cela?Comment puis-je obtenir une équation que je peux utiliser en python?
Actuellement, j'ai dans mon code:
consts = list()
nconst = int(input("How many constraints would you like to add? "))
for i in range(nconst):
const = input("Constraint " + str(i+1) + ": ")
consts.append(const)
Mes contraintes sont les équations que je veux l'utilisateur d'entrer. Je veux que les équations soient au format < =.
J'ai essayé d'utiliser des analyseurs, alors j'ai essayé un cas de test d'utilisation d'un analyseur et j'ai fini avec ce code.
import parser
formula = "x^2"
code = parser.expr(formula).compile()
from math import sin
x = 10
print(eval(code))
Cependant, quand je courais le code, Python m'a donné une réponse de 8 quand la réponse est censée être 100. Y at-il un problème aussi avec l'analyseur de code que j'ai utilisé?
Toute aide sera appréciée!
Votre équation a abouti à 8 car en python '^' signifie 'bitwise xor'. Vous devriez utiliser '**' – Lafexlos
'parser' est l'analyseur interne de Python. Vous devez écrire * votre propre * analyseur pour analyser les équations, ou en utiliser une que quelqu'un a déjà écrit. –
checkout cette question qui vous aidera à créer votre propre analyseur http://stackoverflow.com/questions/2371436/evaluating-a-mathematical-expression-in-a-string –