|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
随机产生一个8到12位密码,要求包含英文字符的大小写、数字字符以及至少一个$,#,%,&中的特殊字符
import random
k=random.randint(8,12)
ls=[0 for i in range (0,k)]
ls1=[j in range(0,k)for i in range(0,random.randint(1,k-1))]
for i in range(len(ls1)):
ls[ls1[i]]=chr(random.randint(97,122)
ls2=[a in range(0,k)for i in range(0,random.randint(1,k-1-len(ls1)))]
for i in range(len(ls2)):#请问一下这里结尾的英文冒号和开头的ls的l为什么总是报错“invalid synax”?
if a not in ls1:
ls[ls2[i]]=upper(chr(random.randint(97,122)))
else:
False
ls3=[b in range(0,k)for i in range(0,random.randint(1,k-1-len(ls1)-len(ls2)]
for i in range(len(ls3)):
if b not in ls1+ls2:
ls[ls3[i]]=random.choice('$','#','%','&')
else:
False
ls4=[c in range(0,k)for i in range(0,random.randint(1,k-1-len(ls1)-len(ls2)-len(ls3)]
for i in range(len(ls4)):
if c not in ls1+ls2+ls3:
ls[ls4[i]]=random.randint(0,9)
else:
False
print (ls)
请问这样写可以吗?为什么运行出来总是在英文冒号和ls的l那里报错?
- from random import randint, choice, shuffle
- alphabet = "abcdefghijklmnopqrstuvwxyz"
- length = randint(8, 12)
- password1 = [choice(alphabet) for _ in range(length // 4)]
- password2 = [choice(alphabet.upper()) for _ in range(length // 4)]
- password3 = [choice("$#%&") for _ in range(length // 4)]
- password4 = [str(randint(0, 9)) for _ in range(length - length // 4 * 3)]
- password = password1 + password2 + password3 + password4
- shuffle(password)
- password = "".join(password)
- print(password)
复制代码
|
|