Pregunta

Gracias de antemano! Estoy escribiendo un programa para comprobar si es cierto a y luego regresar Verdadero o Falso. Necesito dividirlo en el signo igual y después comprobar si el primero elemento de la lista es igual al segundo elemento y viceversa. Aquí es lo que tengo hasta ahora:

def s_equation(a):
    equal=a.split("=")
¿Fue útil?

Solución

Se puede utilizar eval () para evaluar cada parte de la ecuación:

def s_equation(a):
    left, right = a.split('=')
    return eval(left) == eval(right)

Algunas pruebas:

>>> s_equation('1+1+1=3')
True
>>> s_equation('2*2=8')
False

Otros consejos

left, right = a.split("=")
assert left == right

Vas a necesitar para darnos más detalles que que si se desea una respuesta útil. ¿Estás tratando de escribir un sistema de álgebra computacional completo (como por ejemplo Mathematica)? Eso es un proyecto biiiiig y se ha hecho ya varias veces. Considere el uso de algo así como Sage .

Editar: matemáticas me golpeó por la mano , aunque yo recomendaría usar ast.literal_eval en lugar de eval menos que confíe en la entrada que va a recibir.

En realidad, no dan información suficiente para responder así a su pregunta. ¿Quieres probarlo como una identidad (es decir, probar el álgebra) o como una igualdad instantánea?

En el primer caso, (sympy instalar primero):

import sympy

def s_equation(a):
    x = sympy.Symbol('x')
    y = sympy.Symbol('y')
    left, right = a.split('=')
    return eval (left + '==' + right)

uso:

s_equation('x+x = x*2')
#True
s_equation('x+y**2 = y+x**2')
#False
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top