#!/usr/bin/env python
#-*- coding:UTF-8 -*-
import random #导入random模块
import string #导入string模块
salt = '!@#$%^&*()><?' #本人小白因为不知道如何用模块生成特殊字符,所以定义了一个字符串来把所有的特殊字符写进去了。。。。。。(求不虐,求大神修改并指导)
def passwd(length):
chars = string.ascii_letters+string.digits+salt #这里没什么可说的把模块中生成的大小写字母,数字+特殊字符用+号拼加起来赋值给chars这个变量
return ''.join([random.choice(chars)for i in range(length)]) #for 循环把循环的每个元素赋值给chars这个变量中,然后return出来。下面这个#的例子是生成的密码不会有重复字符
下图中最后生成的密码里有重复的H跟B。如果想除重的话,请用下列命令。
#return ''.join(random.sample(chars,8)) #(chars,8)是指定密码的位数,如果这里设定了位数是8位,假如print(passwd(9))里设置9位,最后生成的密码依然会优先(chars,8)中设定的值。
if __name__ == '__main__':
for i in range(1): #设置生成密码的个数
print(passwd(8)) #passwd(8) 这里的8是设定密码的位数。