Commit d6dff900 authored by DELGADO VALENCIA, JORGE's avatar DELGADO VALENCIA, JORGE 💀
Browse files


parent 6694e424
# -*- coding: utf-8 -*-
import sys
class OperadorNoSoportado(Exception):
class Calculadora():
def sumar(self, o1, o2):
if o1 < 0 or o2 < 0:
raise IntentoDeSumarNumerosNegativos
return o1 + o2
def restar(self, o1, o2):
return o1 - o2
def operar(self, cuenta, o1 , o2):
if cuenta == "sumar":
return self.sumar(o1, o2)
elif cuenta == "restar":
return self.restar(o1, o2)
raise OperadorNoSoportado
class CalculadoraHija(Calculadora):
def multiplicar(self, o1, o2):
return o1 * o2
def dividir(self, o1, o2):
return o1 / o2
except ZeroDivisionError:
print("No se puede dividir por cero")
def operar(self, cuenta, o1, o2):
if cuenta == "multiplicar":
return self.multiplicar(o1, o2)
elif cuenta == "dividir":
return self.dividir(o1, o2)
# estilo python2
# super().operar(cuenta, o1, o2)
return Calculadora().operar(cuenta, o1, o2)
if __name__ == "__main__":
miCalculadora = CalculadoraHija()
file = open(sys.argv[1])
for line in file:
line = line.rstrip()
lista = line.split(',')
operador, op1, op2, resto_num = lista[0], lista[1], lista[2], lista[3:]
resultado = miCalculadora.operar(operador, int(op1), int(op2))
for numero in resto_num:
resultado = miCalculadora.operar(operador, resultado, int(numero))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment