[ Foro de Python ]

introduccion de parentesis python

05-Aug-2021 00:04
Invitado (Fer)
1 Respuestas

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


06-Aug-2021 17:06
Invitado (alvaro)

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.)