Hi, wassup? Here is my solution to the introductory python arithmetic arranger exercise. I’m just getting started on this, so sure someone can make some more <> code. What would you improve ?:
Hola, que tal? Les dejo mi solución al ejercicio arithmetic arranger para python introductorio. Recién empiezo con esto, asique seguro alguien puede hacer un codigo más <>. Que le mejorarian?:
def arithmetic_arranger(problems, showAns = False):
#Chequear problemas maximos:
if len(problems) > 5 :
return "Error: Too many problems."
else:
#print(arranged_problems)
#print(problems)
#Separar datos
primera_linea = ""
segunda_linea = ""
linea_punteada = ""
linea_respuesta = ""
for problem in problems:
a = problem.split()
primero = a[0]
segundo = a[-1]
operador = a[1]
#print(primero, operador, segundo)
#Chequear que los números sean numeros
if not primero.isnumeric() or not segundo.isnumeric():
return "Error: Numbers must only contain digits."
#print(primero, operador, segundo)
#Chequear longitud de los numeros
if len(primero) > 4 or len(segundo) > 4:
return "Error: Numbers cannot be more than four digits."
#print(primero, operador, segundo)
#Chequear operadores
if operador == '+':
respuesta = int(primero) + int(segundo)
elif operador == '-':
respuesta = int(primero) - int(segundo)
else:
return "Error: Operator must be '+' or '-'."
#Poner espacios
ancho = (max(len(segundo),len(primero))+ 2)
primera_linea += str(primero).rjust(ancho)
segunda_linea += operador +str(segundo).rjust(ancho - 1)
linea_punteada += "-" * ancho
linea_respuesta += str(respuesta).rjust(ancho)
# En caso de que haya otra operación, deja 4 espacios
if len(problems) >= 1:
primera_linea += " "
segunda_linea += " "
linea_punteada += " "
linea_respuesta += " "
#Resuelva ecuaciones
if showAns == True:
arranged_problems = (primera_linea.rstrip() + "\n" + segunda_linea.rstrip() + '\n' + linea_punteada.rstrip() + '\n' + linea_respuesta.rstrip())
else:
arranged_problems = (primera_linea.rstrip() + "\n" + segunda_linea.rstrip() + '\n' + linea_punteada.rstrip())
return arranged_problems
Greetings!
Saludos!