The fundamental difference is that class attributes are shared by all instances of that class, while instance attributes are unique to each object created with that class. Thus, instance variables are for data unique to each object and class variables are for attributes that must be shared by all instances of that class.
Instance attributes are created using the syntax instance.attr or self.attr ( self is really a convention, it's just an identifier that refers to the instance itself). As has been said, they are local to that instance and therefore only accessible from one of them.
Class attributes are defined outside of any class methods, usually just below the documentation string. They can be referenced directly from the class and can also be referenced from any instance of the class. Common uses are to create an enumerated constant, as a control variable in a Singleton, to set default values for instance variables, to define constants, etc.