创建一个密码生成器，其给出的密码包含8个字符，其中至少有一个大写字母、一个小写字母、一个数字和一个特殊符号。
以下是一个基本的Python密码生成器：

```python
import random
import string

lowercase = string.ascii_lowercase  # 小写字母
uppercase = string.ascii_uppercase  # 大写字母
numbers = string.digits  # 数字
symbols = string.punctuation  # 特殊符号

# 生成包含所有字符类型的8个字符密码
def generate_password():
    password = []
    password.append(random.choice(lowercase))
    password.append(random.choice(uppercase))
    password.append(random.choice(numbers))
    password.append(random.choice(symbols))
    for i in range(4):
        password.append(random.choice(string.printable))
    random.shuffle(password)
    return "".join(password)

# 测试生成的密码
password = generate_password()
print(password)
```

注意，`string.printable`包含所有可打印的ASCII字符，包括字母、数字和特殊字符。因此，前四个字符将包括一个大写字母、一个小写字母、一个数字和一个特殊符号，后面四个字符将随机选择可打印字符。