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