input: Write a python function to implement a stack with push, pop, peek, is_empty, and size methods.
  assert stack.size() == 0
  stack.push(5)
  assert stack.size() == 1
  assert stack.peek() == 5
  stack.push(10)
  assert stack.size() == 2
  assert stack.peek() == 10
  stack.pop()
  assert stack.size() == 1
  assert stack.peek() == 5
  assert not stack.is_empty()
  stack.pop()
  assert stack.is_empty()
output: class Stack:
      def __init__(self):
          self.items = []
  
      def push(self, item):
          self.items.append(item)
  
      def pop(self):
          return self.items.pop() if not self.is_empty() else None
  
      def peek(self):
          return self.items[-1] if not self.is_empty() else None
  
      def is_empty(self):
          return len(self.items) == 0
  
      def size(self):
          return len(self.items)
  
  stack = Stack()
  assert stack.size() == 0
  stack.push(5)
  assert stack.size() == 1
  assert stack.peek() == 5
  stack.push(10)
  assert stack.size() == 2
  assert stack.peek() == 10
  stack.pop()
  assert stack.size() == 1
  assert stack.peek() == 5
  assert not stack.is_empty()
  stack.pop()
  assert stack.is_empty()