Need help to understand not the answer
devinderaujla at gmail.com
devinderaujla at gmail.com
Sat Jul 29 16:06:40 EDT 2017
On Saturday, July 29, 2017 at 3:49:55 PM UTC-4, MRAB wrote:
> On 2017-07-29 20:16, new_to_c0ding wrote:
> > Hello all,
> > I have been scratching my head since morning but could not understand this quiz question. I would appreciate if someone could help me understand what is it asking me to do. I dont need the answer but just the right direction to look at.
> >
> > ### Do not change the Location or Campus classes. ###
> > ### Location class is the same as in lecture. ###
> > class Location(object):
> > def __init__(self, x, y):
> > self.x = x
> > self.y = y
> > def move(self, deltaX, deltaY):
> > return Location(self.x + deltaX, self.y + deltaY)
> > def getX(self):
> > return self.x
> > def getY(self):
> > return self.y
> > def dist_from(self, other):
> > xDist = self.x - other.x
> > yDist = self.y - other.y
> > return (xDist**2 + yDist**2)**0.5
> > def __eq__(self, other):
> > return (self.x == other.x and self.y == other.y)
> > def __str__(self):
> > return '<' + str(self.x) + ',' + str(self.y) + '>'
> >
> > class Campus(object):
> > def __init__(self, center_loc):
> > self.center_loc = center_loc
> > def __str__(self):
> > return str(self.center_loc)
> > class MITCampus(Campus):
> > """ A MITCampus is a Campus that contains tents """
> > def __init__(self, center_loc, tent_loc = Location(0,0)):
> > """ Assumes center_loc and tent_loc are Location objects
> > Initializes a new Campus centered at location center_loc
> > with a tent at location tent_loc """
> > # Your code here
> >
> > def add_tent(self, new_tent_loc):
> > """ Assumes new_tent_loc is a Location
> > Adds new_tent_loc to the campus only if the tent is at least 0.5 distance
> > away from all other tents already there. Campus is unchanged otherwise.
> > Returns True if it could add the tent, False otherwise. """
> > # Your code here
> >
> > def remove_tent(self, tent_loc):
> > """ Assumes tent_loc is a Location
> > Removes tent_loc from the campus.
> > Raises a ValueError if there is not a tent at tent_loc.
> > Does not return anything """
> > # Your code here
> >
> > def get_tents(self):
> > """ Returns a list of all tents on the campus. The list should contain
> > the string representation of the Location of a tent. The list should
> > be sorted by the x coordinate of the location. """
> > # Your code here
> >
> >
> >
> > -=-=-=-=-=-=-=
> >
> > For example, if c = MITCampus(Location(1,2)) then executing the following sequence of commands:
> >
> > c.add_tent(Location(2,3)) should return True
> > c.add_tent(Location(1,2)) should return True
> > c.add_tent(Location(0,0)) should return False
> > c.add_tent(Location(2,3)) should return False
> > c.get_tents() should return ['<0,0>', '<1,2>', '<2,3>']
> >
> > -=-=-=-=-=-=-
> >
> > Now as per instructions, class MITCampus(Campus) has (self, center_loc, tent_loc = Location(0,0)) and it is mentioned that center_loc and tent_loc are Location objects but when I code them as Locations, I get error from the tester:
> > Traceback (most recent call last):
> > File "submission.py", line 61, in __init__
> > self.cloc=Location(center_loc)
> > TypeError: __init__() missing 1 required positional argument: 'y'
> >
> > -=-=-=-==
> >
> > Please help
> >
> Location.__init__ expects 3 arguments: self, x, y
>
> self is already provided, so that leaves 2 arguments: x, y
>
> You're giving it only 1 argument: center_loc
>
> What is center_loc? Is it a tuple?
>
> If it is, then you could do:
>
> self.cloc=Location(center_loc[0], center_loc[1])
>
> or:
>
> self.cloc=Location(*center_loc)
Hi, thanks for replying. As per the description it is a Location object. And that result is from the tester so it should have provided two values if it was expecting it to be a location object.
More information about the Python-list
mailing list