Scientific Computing with Python Projects - Arithmetic Formatter

Tell us what’s happening:
Hello.
I am new to programing and am doing this course. My problem is with the first project. It doesnt look like what I was thought about it in the course prior is enough to pass it. My code is below(I made it only in one python file for now). I can make the Arithmedic Formatter but without it being four spaces between each problem.

problems = [‘32 + 8’,‘33 - 23’,‘485 + 2’, ‘154 + 145’]

for problem in problems:

``````    chunks = problem.split(" ")
max_len = len(max(chunks,key=len))
line_len = max_len + 2
line = '-' * line_len

current_len = len(chunks[0])
first_num_len = line_len - current_len
first_num = (" " * first_num_len) + chunks[0]

current_len_2 = len(chunks[2])
second_num_len = (line_len - current_len_2) - 1
operation = chunks[1]
second_num = (operation + " " * second_num_len) + chunks[2]

arranged_problems = (first_num + "\n" + second_num + "\n" + line)

result = None
first_number_int = int(first_num)
second_number_int = int(chunks[2])

if operation == "+":
result = first_number_int + second_number_int
elif operation == "-":
result = first_number_int - second_number_int

current_len_3 = len(str(result))
result_len = line_len - current_len_3
result_aligned = (" " * result_len) + str(result)

arranged_problems = (first_num + "\n" + second_num + "\n" + line + "\n" + result_aligned)

print(arranged_problems + "\n")
``````

User Agent is: `Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/111.0`

Challenge: Scientific Computing with Python Projects - Arithmetic Formatter

Welcome to the course

Yeah, the projects are meant to expand on the coursework, so usually you have to do a bit of research and brainstorming to solve them. But I believe it can be solved just using or expanding on what was shown in the course.

Anyway, I noticed you said you are just working on it in a single file… did you first download the “starter code” that was provided? The starter code has all the testing files and things used to test your software. Are you working on this on your local system (like in VSCode) or in Replit?

You might already know this, but the project asked you to create a function that returns the formatted string… your code so far is just a script that prints the desired output… just wanted to point that out if you didn’t know the difference, but you might just be doing it this way for testing and development.

Regarding the code… it runs and prints the output, but yeah, one right after another instead of in a row. The formatting of the problems is the primary issue you’re expected to solve in this challenge. That’s what makes it more difficult. I don’t see that you asked any question, so what are you having problems with… not sure how you should go about it?

If you’re wondering if there is some function you’re not familiar with that changes the output from column to row… sadly no… your task is to figure out how you can print them in rows using just what you know about strings, and theres many ways it can be done.

Think about it, and let us know if you have any questions or want to bounce some possible ideas… I thought about listing a few possible methods, but didn’t want to influence your solution. Its fun seeing how many different ways people come up with to solve these, although its even more surprising how often everyones completely independed solution ends up looking almost exactly like anothers.

Thanks for your answer, I managed to figure it out after all. I can post the code here if you are interested.

1 Like

Nice. Maintaining four separate lines is the most common solution I’ve seen for this problem. Can also split the problem peices into separate arrays and then build the string going through those.

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