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