input: Write a function to encrypt a message using a Caesar cipher with a given shift. If the shifted character value exceeds the printable ASCII range (32-126), it should wrap around to the beginning of this range. If the input message is empty, the function should return an empty string.
  assert caesar_encrypt("Hello, World!", 3)=='>kknq1%Zrug#'
  assert caesar_encrypt("Encrypt this!", 5)=='Jshwduy%ymnx1'
  assert caesar_encrypt("Secret", 10)==('Ckqob}k')
  assert caesar_encrypt("", 7)==''
  assert caesar_encrypt("Testing", 0)=='Testing'
output: def caesar_encrypt(message, shift):
      if not message:
          return ""
      encrypted_message = []
      for char in message:
          if 32 <= ord(char) <= 126:
              new_char = chr((ord(char) - 32 + shift) % 95 + 32)
              encrypted_message.append(new_char)
          else:
              encrypted_message.append(char)
      return ''.join(encrypted_message)