[ Foro de Python ]
Tengo este codigo en python y necesito que me deje generar operaciones poniendo parentesis de esta manera ejemplo: (1+2+3)*4. Hasta el momento me genera el resultado correcto de la operacion pero sin introducir los parentesis.
class Calculadora:
resultado=0
def getResultado(self):
return self.resultado
def operacion(self,*arg):
if arg[0] == "+": #Suma
return int(arg[1])+int(arg[2])
elif arg[0] == "-": #Resta
resul= int(arg[1])-int(arg[2])
return resul
elif arg[0] == "*": #Multiplicar
return int(arg[1])*int(arg[2])
def __init__(self,operacion,*numeros):
self.resultado=self.operacion(operacion,numeros[0],numeros[1])
class Operaciones:
def listaOperaciones(self,aux):
numero = []
operacion = []
aux2=""
for i in range(len(aux)):
if aux[i]=="+" or aux[i]=="-" or aux[i] == "*":
operacion.append(aux[i])
numero.append(aux2)
aux2=""
else:
aux2=aux2+aux[i]
numero.append(aux2)
self.generarOperaciones(numero,operacion)
def generarOperaciones(self,numeros,operadores):
j=0
total=0
for i in range(1,len(numeros)):
if j==0:
x=Calculadora(operadores[j],int(numeros[i-1]),int(numeros[i]))
total= x.getResultado()
j=j+1;
else:
x=Calculadora(operadores[j],total,int(numeros[i]))
total= x.getResultado()
j=j+1;
print("El resultado es: "+str(total))
def __init__(self):
print("Escribe la operación: ")
aux = input() #1+3+5-4+5
self.listaOperaciones(aux)
(Apartado para ejecutar codigo)
c=Operaciones()
El codigo consta de dos clases
hola fer
has probado la funcion integrada eval ¿¿??
resultado = eval(input("Introduce los cálculos: "))
print("El resultado de las operaciones es: ", resultado)
saludos ;-)
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)