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


parent de07fd69
# -*- coding: utf-8 -*-
import sys
import csv
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()
with open(sys.argv[1]) as csvFile:
file = csv.reader(csvFile)
for lista in file:
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