input: Write a python function to implement a stack and perform basic operations such as push, pop, and check if the stack is empty.
  assert (s := Stack()).is_empty() == True
  assert s.push(1) or s.push(2) or s.push(3) or s.is_empty() == False
  assert s.pop() == 3
  assert s.pop() == 2
  assert s.pop() == 1
  assert s.is_empty() == True
output: class Stack:
      def __init__(self):
          self.items = []
  
      def push(self, item):
          self.items.append(item)
  
      def pop(self):
          if not self.is_empty():
              return self.items.pop()
          raise IndexError("pop from empty stack")
  
      def is_empty(self):
          return len(self.items) == 0