input: def caesar_encrypt(message: str, shift: int) -> str:
      """Encrypts the given message using a Caesar cipher with the specified shift.
      The Caesar cipher shifts each character in the message by a fixed number of 
      positions down the ASCII table. If the shift pushes a character beyond the 
      printable ASCII range (32-126), it wraps around to the beginning of this range.
  
      >>> caesar_encrypt("hello", 3)
      'khoor'
      >>> caesar_encrypt("ABCabc123", 1)
      'BCDbcd234'
      >>> caesar_encrypt("!@#$%^&*()", 5)
      '&%*+,-./01'
      """
output:     encrypted_message = ""
      for char in message:
          if 32 <= ord(char) <= 126:
              new_char = chr((ord(char) - 32 + shift) % 95 + 32)
              encrypted_message += new_char
          else:
              encrypted_message += char
      return encrypted_message