[Tutor] TypeError: not enough arguments for format string

Christopher Spears cspears2002 at yahoo.com
Wed Jul 2 06:36:57 CEST 2008

I'm working on problem 13-5 in Core Python Programming (2nd Edition).  I am supposed to create point class.  Here is what I have so far:


class Point(object):
    def __init__(self, x=0.0,y=0.0):
        self.x = float(x)
	self.y = float(y)
    def __repr__(self):
        coord = (self.x,self.y)
	return coord
    def __str__(self):
	point_str = "(%f,%f)" % self.x, self.y
	return point_str
    def get_x(self):
        return self.x
    def get_y(self):
        return self.y
if __name__ == '__main__':
    print "Creating a point"
    x = raw_input("Enter a x value: ")
    y = raw_input("Enter a y value: ")
    p = Point(x,y)
    print p

I ran the script and got the following error message:

Creating a point
Enter a x value: 1
Enter a y value: 2
Traceback (most recent call last):
  File "point.py", line 27, in ?
    print p
  File "point.py", line 13, in __str__
    point_str = "(%f,%f)" % self.x, self.y
TypeError: not enough arguments for format string

Does anyone know what is wrong?  I'm sure it is something obvious, but I can't see it.


More information about the Tutor mailing list