# Help with Arithmatic Formatter

Hello, can anyone help, when I run code all the conditions were ok, but in test I got 10/10 Fails which I don’t understand
Here is the code

``````def arithmetic_arranger (problems, second_arg = False):

firstnum =[];
secondnum =[];
operator =[];
rez =[]
problem =[]

for x in problems:
problem.append(x.lstrip().rstrip().split(" "))

if len(problems)>5:
aranged_problems_error = "Error: Too many problems"
return (aranged_problems_error)

for x in problem:

try:
firstnum.append(int(x))
secondnum.append(int(x))
operator.append(x)
except :
aranged_problems_error = "Error: Numbers must only contain digits. "
return (aranged_problems_error)

if  ((x) == "*" or (x) == "/"):
aranged_problems_error = "Error: Operator must be '+' or '-'. "
return (aranged_problems_error)

for x in range(len(firstnum)):
if (len(str(firstnum[x]))>4 or len(str(secondnum[x]))>4):
aranged_problems_error = "Error: Numbers cannot be more than four digits. "
return (aranged_problems_error)

first_row =""
second_row =""
lines =""
third_row=""
aranged_problems =""
for x in range(len(operator)):
b = len(str(max(firstnum[x], secondnum[x])))
c= (str(firstnum[x]).rjust(b+2, " "), " "*4)
first_row +="".join(c)

for x in range(len(operator)):
b = len(str(max(firstnum[x], secondnum[x])))
c= (str(operator[x]).ljust(1," "), str(secondnum[x]).rjust(b+1, " ")," "*4)
second_row +="".join(c)

for x in range(len(operator)):
b = len(str(max(firstnum[x], secondnum[x])))
c= (str("-"*(b+2)).rjust(b), " "*4)
lines +="".join(c)

aranged_problems = (first_row + "\n" + second_row + "\n" + lines)

if second_arg == True:
for x in range(len(operator)):
if (operator[x]== "+"):
rez.append(firstnum[x] + secondnum[x])
else:
rez.append(firstnum[x] - secondnum[x])

for x in range(len(operator)):
b = len(str(max(firstnum[x], secondnum[x])))
c= (str(rez[x]).rjust(b+2, " ")," "*4)
third_row +="".join(c)

aranged_problems = (first_row + "\n" + second_row + "\n" + lines + "\n" + third_row)
return (aranged_problems)
else:
return (aranged_problems)
``````

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (`</>`) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

A guess after a quick glance are excess spaces at the ends of your lines.

Ok thank you very much and sorry didn’t know, I’m new

``````-     3      3801      45      123
+     3      3801      45      123
?                                 ++++
``````

Excess spaces at the end.

``````- Error: Too many problems.
?                         -
+ Error: Too many problems
``````

Missing punctuation.

``````- Error: Numbers must only contain digits.
+ Error: Numbers must only contain digits.
?                                         +
``````

Excess space at the end.

Thank you very much for quick solution, I’ve been trying for a few days and couldn’t figure it out Try reading the error messages now that I pointed out what they mean.
It’s quite hard at first understanding what all the stuff means - but it’s good practice not just for the projects but later on when programming it’s vital to construct and thus understand such test-cases and their error messages.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.