I have done my code for the Arithmetic Formatter exercise and failed to pass the test in replit. However, i tested the case in my own python IDLE local host and manage to pass all of those.

Is there anything that I’m doing wrong?
Below is the code for the exercise.

if len(problems) > 5:
print('Error: Too many problems.')
return
for problem in problems:
lst = problem.split()
first_number = lst[0]
operator = lst[1]
second_number = lst[2]
try:
int(first_number)
int(second_number)
except:
print('Error: Numbers must only contain digits.')
return
if len(first_number) > 4 or len(second_number) > 4:
print('Error: Numbers cannot be more than four digits.')
return
if operator == '+' or operator == '-':
length = max(len(first_number), len(second_number)) + 2
line_one.append(first_number.rjust(length))
line_two.append(operator + second_number.rjust(length-1))
line_three.append('-'*length)
if operator == '+':
solution = int(first_number) + int(second_number)
else:
solution = int(first_number) - int(second_number)
line_four.append(str(solution).rjust(length))
else:
print('Error: Operator must be \'+\' or \'-\'.')
return
one = ' '.join(line_one)
two = ' '.join(line_two)
three = ' '.join(line_three)
four = ' '.join(line_four)
print(one)
print(two)
print(three)
if display == True:
print(four)

I see a couple of problems straight off.
1- You are not returning one string, you are printing to the console.
2- You are adding spaces to the begining of each line.

Thanks for your feedback, jpottercycles. I don’t get what you meant by Adding spaces to the beginning of each line. Could you kindly please explain further?

I’ve done some changes to the code and tested it again with replit and managed to pass all the test. Thanks for your feedback, i realized the problem lies with my understanding of return and print. Now i understand the difference usage between them.

Below is the code after making necessary changes. (I replaced print to return mostly)

if len(problems) > 5:
return 'Error: Too many problems.'
for problem in problems:
lst = problem.split()
first_number = lst[0]
operator = lst[1]
second_number = lst[2]
try:
int(first_number)
int(second_number)
except:
return 'Error: Numbers must only contain digits.'
if len(first_number) > 4 or len(second_number) > 4:
return 'Error: Numbers cannot be more than four digits.'
if operator == '+' or operator == '-':
length = max(len(first_number), len(second_number)) + 2
line_one.append(first_number.rjust(length))
line_two.append(operator + second_number.rjust(length-1))
line_three.append('-'*length)
if operator == '+':
solution = int(first_number) + int(second_number)
else:
solution = int(first_number) - int(second_number)
line_four.append(str(solution).rjust(length))
else:
return 'Error: Operator must be \'+\' or \'-\'.'
one = ' '.join(line_one)
two = ' '.join(line_two)
three = ' '.join(line_three)
four = ' '.join(line_four)
if display == True:
print(one+'\n'+two+'\n'+three+'\n'+four)
return one+'\n'+two+'\n'+three+'\n'+four
else:
print(one+'\n'+two+'\n'+three)
return one+'\n'+two+'\n'+three