input: Write a function to encrypt a message using a Caesar cipher by shifting each character in the message by a given number of positions in the ASCII table. If shifting a character exceeds the printable ASCII range (32-126), it should wrap around within this range. The function should take a string message and an integer shift as input and return the encrypted message as a string.
  
  
  assert caesar_encrypt("Hello, World!", 3) == "Khoor/#Zruog$"
  assert caesar_encrypt("Python is cool", 5) == "Udymts%nx%httq"
  assert caesar_encrypt("Encrypt me!", 10) == "Oxu|c{�%}o^"
  assert caesar_encrypt("This is a test.", 20) == "Dt{c=/`{-|ocy,"
  assert caesar_encrypt("", 5) == ""
  
  
  **Output:**
  
  
  def caesar_encrypt(message, shift):
      encrypted_message = ""
      for c in message:
          encrypted_c = ord(c) + shift
          if encrypted_c > 126:
              encrypted_c -= 95
          if encrypted_c < 32:
              encrypted_c += 95
          encrypted_message += chr(encrypted_c)
      return encrypted_message
  
output: def caesar_encrypt(message, shift):
      encrypted_message = ""
      for c in message:
          encrypted_c = ord(c) + shift
          if encrypted_c > 126:
              encrypted_c = 31 + (encrypted_c - 126)
          elif encrypted_c < 32:
              encrypted_c = 127 - (32 - encrypted_c)
          encrypted_message += chr(encrypted_c)
      return encrypted_message