input: Write a function to create a simple blockchain system in Python. The function should define a `Block` class to represent each block in the blockchain, a `hash_block` method to create the hash of the block contents, a `create_blockchain` function to build the blockchain from a list of transactions, and a `print_blockchain` function to print the blockchain.
  
  
  assert create_blockchain(["Transaction1", "Transaction2"])
  assert print_blockchain() == ["Block 0: Transaction1", "Block 1: Transaction2"]
  assert create_blockchain([]) == []
  assert print_blockchain() == []
  assert create_blockchain(["Transaction1", "Transaction2", "Transaction3"])
  assert print_blockchain() == ["Block 0: Transaction1", "Block 1: Transaction2", "Block 2: Transaction3"]
  
output: class Block:
      def __init__(self, index, transactions, previous_hash):
          self.index = index
          self.transactions = transactions
          self.previous_hash = previous_hash
          self.hash = self.hash_block()
  
      def hash_block(self):
          sha = hashlib.sha256()
          sha.update(f"{self.index}{self.transactions}{self.previous_hash}".encode('utf-8'))
          return sha.hexdigest()
  
  blockchain = []
  
  def create_blockchain(transactions):
      global blockchain
      blockchain = []
      previous_hash = '0'
      for index, transaction in enumerate(transactions):
          block = Block(index, transaction, previous_hash)
          previous_hash = block.hash
          blockchain.append(block)
      return blockchain
  
  def print_blockchain():
      return [f"Block {block.index}: {block.transactions}" for block in blockchain]