Stack implementation in python using jupyter This is my first program in Python: a stack implementation.

class Stack:
    items =[];
    index =-1;

    def isEmpty(self):
        return  self.index &gt;=0;

    def push(self,item):
            self.index  +=1;
            print(self.index);
            self.items.insert(self.index,item);


    def pop(self):

        if self.index&lt;0:
            raise Exception(" no items in list");
        else:    
            del self.items[self.index];
            self.index -=1;

    def peek(self):
        print(self.index);
        if self.index &gt;-1:
            return self.items[self.index];



stackobj = Stack();
stackobj.push("solomon");
stackobj.push("helloworld")
stackobj.pop();

print(stackobj.peek())


Even though this program works I'm still confused as to whether I've written the program in the right way. I am also not sure when to use the self operator.
Welcome to the land of Python!

If you come from Java, think as self being the same as this in Java.
It is a reference to the object, the difference being in Python, you have to explicitly pass self as a parameter to the class methods.

If you write in Java

class Stack{

    //constructor and class variables goes here

    void pop(){
       if(this.index &lt; 0)
       //logic of the function goes here
    }
}


In Python you write like you did here

class Stack:
    # constructor and class variables goes here

    def pop(self):
        if self.index&lt;0:
        # logic of the function goes here


You see that self and this serve the same purpose.

An another point, you should use documentation! As in PEP257 the format recommanded is like:

def complex(real=0.0, imag=0.0):
    """Form a complex number.

    Keyword arguments:
    real -- the real part (default 0.0)
    imag -- the imaginary part (default 0.0)
    """
    if imag == 0.0 and real == 0.0:
        return complex_zero
    ...
        '''


Another thing, to follow PEP8 it is better to write assignment and condition with a space after the operator.
Write  items = [] or self.index &gt;= 0 instead of items =[] or self.index &gt;=0.

Also you can drop ; in Python, it's not Java :)

Edit: Also look at @Jon's comments below