请编写程序,生成随机密码。具体要求如下: (1)使用random库,采用0x1010作为随机数种子。 (2)密码由26个字母大小写、10个数字字符和!@#$%^&*等8个特殊符号组成。 (3)每个密码长度固定为10个字符。 (4)程序运行每次产生10个密码,每个密码一行。 (5)每次产生的10个密码首字符不能一样。 (6)程序运行后产生的密码保存在“随机密码.txt”文件中。 程序代码如下: import random random.___ s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890! @#$%^&*" ls = [] excludes = " " while len(ls) < ___: pwd = " " for i in range(___): pwd += s[random.randint(___)] if pwd[0] in excludes: ___ ls.append(pwd) excludes += ___ fo = open("随机密码.txt", "w") fo.write("\n".___) fo.close()
时间: 2024-03-14 13:48:31 浏览: 101
以下是符合你要求的代码:
```python
import random
random.seed(0x1010) # 指定随机数种子
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls = []
excludes = ""
while len(ls) < 10:
pwd = ""
for i in range(10):
if i == 0:
pwd += s[random.randint(0, 73)] # 首字符随机选择
else:
pwd += s[random.randint(0, 73)] # 剩下字符中随机选择
if pwd[0] not in excludes: # 首字符不能与之前的密码重复
ls.append(pwd)
excludes += pwd[0] # 将首字符加入排除列表
with open("随机密码.txt", "w") as f:
f.write("\n".join(ls))
for pwd in ls:
print(pwd)
```
在这个例子中,我们首先使用 random.seed() 函数指定随机数种子为 0x1010,然后定义了密码的字符集 s,以及保存密码的列表 ls 和排除列表 excludes。在一个 while 循环中,我们不断生成新的密码,直到满足要求为止。生成密码的方式是在字符集 s 中随机选择 10 个字符组成一个字符串,其中首字符在所有字符中随机选择,其他字符在剩下的字符中随机选择。每次生成的时候,我们还需要检查首字符是否与之前的密码重复,如果重复则放弃这个密码。最后,我们将生成的密码保存到 "随机密码.txt" 文件中,并输出到控制台。
阅读全文