只使用random.choice和random.shuffle,不使用string模块生成随机密码
时间: 2024-04-15 19:31:08 浏览: 163
当然可以!以下是使用 Python 的 random 模块的 `random.choice()` 和 `random.shuffle()` 函数生成随机密码的示例代码:
```python
import random
def generate_random_password(length):
characters = [chr(i) for i in range(33, 127)]
random.shuffle(characters)
password = ''.join(random.choice(characters) for _ in range(length))
return password
length = int(input("请输入密码的长度:"))
password = generate_random_password(length)
print("随机生成的密码为:", password)
```
在上述代码中,我们使用了 `chr()` 函数将 ASCII 码转换为对应的字符,并将字符存储在列表 `characters` 中。然后,我们使用 `random.shuffle()` 函数来随机打乱 `characters` 列表中的字符顺序。最后,我们使用列表推导式和 `random.choice()` 函数来选择指定长度的随机字符,并通过 `''.join()` 方法将它们连接成密码字符串。
你可以通过输入密码的长度来生成不同长度的随机密码。请注意,这种方法会打乱所有可能字符的顺序,因此生成的密码可能包含重复字符。如果你想要避免重复字符,可以在生成密码之后进行检查和去重操作。
阅读全文