我的意思是第12行的for循环和嵌套在其中的for循环.我不止一次遇到这种情况.我会使用列表理解,但似乎它不会在这里工作.
import random
import string
def password_generator():
key = zip(string.digits, string.ascii_uppercase)
cruft, x = str(random.random()).split('.')
pw = ''
for item in x:
for element in key:
if item in element:
Q = random.random()
if Q > 0.7:
pw += element[1].lower()
else:
pw += element[1]
print pw
谢谢.
最佳答案 这是一种使用列表理解的方法:
def pw_gen():
key = zip(string.digits, string.ascii_uppercase)
cruft, x = str(random.random()).split('.')
def f(i,e):
Q = random.random()
if Q > 0.7:
return e[1].lower()
else:
return e[1]
return [ f(item,element) for item in x for element in key if item in element ]
这将返回一个字符列表.使用“”.join(pw_gen())转换为字符串.