input: Write a function to generate a random password of length 8, consisting of alphanumeric characters and at least one special character. Return the generated password. If the password does not contain at least one special character, regenerate it.
  
  assert len(generate_password()) == 8
  assert any(char in string.punctuation for char in generate_password()) == True
output: import random
  import string
  
  def generate_password():
      while True:
          password = ''.join(random.choices(string.ascii_letters + string.digits + string.punctuation, k=8))
          if any(char in string.punctuation for char in password):
              return password