Learn Encapsulation by Building a Projectile Trajectory Calculator - Step 5

Tell us what’s happening:

I’m getting an error that “The string representation for Projectile(45, 45, 45) should be correct.” It displays correctly. I searched the forum and another user with the identical issue found a fix when re-reading the instruction “It should start and end with a new line character” but that hasn’t helped me so far.

When it says “it” should start and end with a new line, I’m not sure if it means the string as a whole, or each individual item in the results. I’ve tried every combination.

Your code so far

import math

GRAVITATIONAL_ACCELERATION = 9.81
PROJECTILE = "∙"
x_axis_tick = "T"
y_axis_tick = "⊣"

class Projectile:
    __slots__ = ('__speed', '__height', '__angle')

    def __init__(self, speed, height, angle):
        self.__speed = speed
        self.__height = height
        self.__angle = math.radians(angle)


    def __calculate_displacement(self):
        horizontal_component = self.__speed * math.cos(self.__angle)
        vertical_component = self.__speed * math.sin(self.__angle)
        squared_component = vertical_component**2
        gh_component = 2 * GRAVITATIONAL_ACCELERATION * self.__height
        sqrt_component = math.sqrt(squared_component + gh_component)
        
        return horizontal_component * (vertical_component + sqrt_component) / GRAVITATIONAL_ACCELERATION
        

# User Editable Region

    def __str__(self):
        return (f'\n Projectile details:\n'
                f'\n speed: {self.__speed} m/s\n'
                f'\n height: {self.__height} m\n'
                f'\n angle: {int(math.degrees(self.__angle))}°\n'
                f'\n displacement: {round(self.__calculate_displacement(), 1)} m\n')

ball = Projectile(10, 3, 45)  
print(ball)

# User Editable Region

        

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36

Challenge Information:

Learn Encapsulation by Building a Projectile Trajectory Calculator - Step 5

If you compare your output in the preview, is it exactly the same as the example? All the spacing needs to be exactly the same.

Every one of your lines starts with a space and is double spaced.

“It should start and end with a new line character” refers to the full string returned.

make it return a string

This is 1 string. You are kind of breaking it up into a few strings, but they seem to combine when returned and it passes the test, so you can keep it like this.

1 Like

Thank the maker! By which I mean @pkdvalis.

1 Like

You’re welcome, I’m glad I could help but I’m a simple pleb