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

prácticas definitivas

parent 1b344ae0
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
resultado = 0;
class OperadorNoSoportado(Exception):
pass
class Calculadora():
def leer_archivo(self, file) :
for line1 in file :
jal = line1.rstrip()
delimiter = ','
lst = jal.split(delimiter)
operando = lst.pop(0)
print(operando)
def sumar(self, o1, o2):
if o1 < 0 or o2 < 0:
raise IntentoDeSumarNumerosNegativos
else:
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)
else:
raise OperadorNoSoportado
#sys.exit('Operación sólo puede ser sumar o restar.')
# instanciar la clase
class CalculadoraHija(Calculadora):
def multiplicar(self, o1, o2):
return o1 * o2
def dividir(self, o1, o2):
try:
return o1 / o2
except ZeroDivisionError:
print("No se puede dividir por cero")
#def operar_linea(self, file):
# if
# for lista in lst1 :
# total = resultado + lista
# print(total)
def operar(self, cuenta, o1, o2):
if cuenta == "multiplicar" :
return self.multiplicar(o1, o2)
elif cuenta == "dividir" :
return self.dividir(o1, o2)
else:
# estilo python2
# super().operar(cuenta, o1, o2)
return Calculadora().operar(cuenta, o1, o2)
if __name__ == "__main__":
miCalculadora = Calculadora()
outcome = miCalculadora.leer_archivo(open(sys.argv[1]))
print(outcome)
miCalculadora = CalculadoraHija()
#result = lst1[1] + lst1[2]
#elif lst1[0] == "Resta" :
# result = float(lst1[1]) - float(lst1[2])
#elif lst1[0] == "divide" :
# try:
# result == float(lst1[1]) / float(lst1[2])
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))
# except ZeroDivisionError:
# print("float division by zero")
# file2.write("float division by zero" + "\n")
# continue
#elif lst1[0] == "multiplica" :
# result = float(lst1[1]) * float(lst1[2])
print(resultado)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
import csv
class OperadorNoSoportado(Exception):
pass
class Calculadora():
def sumar(self, o1, o2):
if o1 < 0 or o2 < 0:
raise IntentoDeSumarNumerosNegativos
else:
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)
else:
raise OperadorNoSoportado
#sys.exit('Operación sólo puede ser sumar o restar.')
# instanciar la clase
class CalculadoraHija(Calculadora):
def multiplicar(self, o1, o2):
return o1 * o2
def dividir(self, o1, o2):
try:
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)
else:
# 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))
print(resultado)
......@@ -44,14 +44,16 @@ class CalculadoraHija(Calculadora):
elif cuenta == "dividir" :
return self.dividir(o1, o2)
else:
super().operar(cuenta, o1, o2)
return Calculadora().operar(cuenta, o1, o2)
miCalculadora = CalculadoraHija()
if __name__ == "__main__":
try:
resultado = miCalculadora.operar(sys.argv[1], int(sys.argv[2]), int(sys.argv[3]))
miCalculadora = CalculadoraHija()
except OperadorNoSoportado:
print('Operación sólo puede ser sumar o restar.')
else:
print(resultado)
try:
resultado = miCalculadora.operar(sys.argv[1], int(sys.argv[2]), int(sys.argv[3]))
except OperadorNoSoportado:
print('Operación sólo puede ser sumar o restar.')
else:
print(resultado)
sumar,1,2,3,4,5
restar,31,6,4,3,2,1
multiplicar,1,3,5
dividir,300,10,2
suma,1,2,3,4,5
resta,31,6,4,3,2,1
multiplica,1,3,5
divide,300,10,2
sumar,1,2,3,4,5
restar,31,6,4,3,2,1
multiplicar,1,3,5
dividir,300,10,2
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