Arithmetic Formatter code review- Fail return on browser

Working on the Arithmetic Formatter I wrote the below code, when testing it locally the solution is fully compliant with requirement .
however when testing on the browser it is throwing a fail.

Can anyone review the code and help me please.

Thank you

Your code so far

import operator

def check_num(s):
  try:
    int(s)
    return True
  except:
    return False

def is_correct_format(problems):
    if len(problems) > 5:
        print('Error: Too many problems.')
    else:
        for item  in problems:
            problem = item.split(' ')
            if not(check_num(problem[0]) and check_num(problem[2])):
                print('Error: Numbers must only contain digits.')
                correct_format = False
                break

            elif problem[1] is not '+' and problem[1] is not '-' :
                print('Error: Operator must be ''+'' or ''-''.')
                correct_format =False
                break

            elif max(len(problem[0]), len(problem[2])) > 4:
                print('Error: Numbers cannot be more than four digits.')
                correct_format =False
                break

            else:
                correct_format = True
        return correct_format`Preformatted text`

def arithmetic_arranger(problems, solve=False):
    if is_correct_format(problems):
        arranged_problems = ""
        dict = {"+": operator.add, "-": operator.sub}
        first = [*range(len(problems))]
        second = [*range(len(problems))]
        sign = [*range(len(problems))]
        x = 0
        for i in problems:
            first[x], sign[x], second[x] = i.split()
            x+=1
        # first line
        for i in range(len(problems)):
            arranged_problems += str(" " * (len(str(max(int(first[i]), int(second[i])))) - len(str(first[i])) + 2) + first[i] + " "*4)

        arranged_problems += str("\n")
        # second line
        for i in range(len(problems)):
            arranged_problems += str(
                sign[i] + " " * (len(str(max(int(first[i]), int(second[i])))) - len(second[i]) + 1) + second[
                    i] + " "*4)
        arranged_problems += str("\n")
        # Third line
        for i in range(len(problems)):
            arranged_problems += str("--" + "-" * (len(str(max(int(first[i]), int(second[i]))))) + "    ")
        arranged_problems += str("\n")

        if solve:
            total = [*range(len(problems))]
            x=0
            for i in range(len(problems)):
                total[x] =dict[sign[i]](int(first[i]), int(second[i]))
                arranged_problems += str(" " * (len(str(max(int(first[i]), int(second[i])))) - len(
                    str(total[x]))+ 2) + str(total[x] ) + "    ")
                x+=1

        return arranged_problems

# For testing locally the output
print(arithmetic_arranger(["32 + 6986", "3801 - 2", "45 + 43", "123 + 49"]))
print(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]))
print(arithmetic_arranger(["11 + 4", "3801 - 2999", "1 + 2", "123 + 49", "1 - 9380"]))
print(arithmetic_arranger(["44 + 815", "909 - 2", "45 + 43", "123 + 49", "888 + 40", "653 + 87"]))
print(arithmetic_arranger(["3 + 855", "3801 - 2", "45 + 43", "123 + 49"]))
print(arithmetic_arranger(["24 + 85215", "3801 - 2", "45 + 43", "123 + 49"]))
print(arithmetic_arranger(["98 + 3g5", "3801 - 2", "45 + 43", "123 + 49"]))
print(arithmetic_arranger(["32 - 698", "1 - 3801", "45 + 43", "123 + 49"], True))

Your browser information:

User Agent is: Chrome/85.0.4183.121
Challenge: Arithmetic Formatter

Link to the challenge:

can you share your repl?

repl.it/@SalimHOUARI/arithmeticarranger#arithmetic_arranger.py

let’s look at the tests output

for your arranged outputs, you can see the diff test result:

-     3      3801      45      123    
?                                 ----
+     3      3801      45      123
- + 855    -    2    + 43    +  49    
?                                 ----
+ + 855    -    2    + 43    +  49
- -----    ------    ----    -----    
?                                 -----
+ -----    ------    ----    -----

the lines starting with - are yours, and the lines starting with + are the expected output, and the lines with ? mark the difference, notice you have extra characters at the end of each line


for the errors, the Assertion Errors say:

AssertionError: None != 'Error: Numbers cannot be more than four digits.'

you just print the errors, and not return them