Once again I'm asking for you advice. I'm trying to print a complex string block, it should look like this:
  32         1      9999      523
+  8    - 3801    + 9999    -  49
----    ------    ------    -----
  40     -3800     19998      474
I wrote the function arrange_printer() for the characters arrangement in the correct format that could be reutilized for printing the list. This is how my code looks by now:
import operator
import sys
def arithmetic_arranger(problems, boolean: bool):
    
    arranged_problems = []
    if len(problems) <= 5:
        for num in range(len(problems)):
            arranged_problems += arrange_printer(problems[num], boolean)
    else:
        sys.exit("Error: Too many problems")
    return print(*arranged_problems, end='    ')
def arrange_printer(oper: str, boolean: bool):
    oper = oper.split()
    ops = {"+": operator.add, "-": operator.sub}
    a = int(oper[0])
    b = int(oper[2])
    if len(oper[0]) > len(oper[2]):
        size = len(oper[0])
    elif len(oper[0]) < len(oper[2]):
        size = len(oper[2])
    else:
        size = len(oper[0])
    
    line = '------'
    ope = '  %*i\n%s %*i\n%s' % (size,a,oper[1],size,b,'------'[0:size+2])
    try:
        res = ops[oper[1]](a,b)
    except:
        sys.exit("Error: Operator must be '+' or '-'.")
    if boolean == True:
        ope = '%s\n%*i' % (ope,size+2, res)
    return ope
arithmetic_arranger(['20 + 300', '1563 - 465 '], True)
#arrange_printer(' 20 + 334 ', True)
Sadly, I'm getting this format:
      2 0
 +   3 0 0
 - - - - -
     3 2 0     1 5 6 3
 -     4 6 5
 - - - - - -
     1 0 9 8
If you try printing the return of arrange_printer() as in the last commented line the format is the desired.
Any suggestion for improving my code or adopt good coding practices are well received, I'm starting to get a feel for programming in Python.
Thank you by your help!
 
    