问题描述
有没有更好的方式可以编写此内容?我是python编码的新手,我想改进以下代码行。我在这里包括了几行代码,但是原始代码比这更长(如果是多个语句)。任何指导/反馈都将有所帮助。
upperchar = #generate a char
pwdlist.append(upperchar)
if len(pwdlist) < length:
upperchar2 = #generate a char
pwdlist.append(upperchar2)
if len(pwdlist) < length:
lowerchar = #generate a char
pwdlist.append(lowerchar)
if len(pwdlist) < length:
lowerchar2 = #generate a char
pwdlist.append(lowerchar2)
if len(pwdlist) < length:
char3 = #generate a char
pwdlist.append(char3)
在这里发布我的第一个问题,所以如果您还需要其他任何内容,请问我。
解决方法
假设您总是以相同的方式生成字符,那么这将起作用
pwdlist = []
while len(pwdlist) < length:
pwdlist.append(generate_char())
或
pwdlist = [generate_char() for _ in range(length)]
然后,您可以在此generate函数中添加逻辑,以基于随机值返回某些内容,例如
def generate_char():
from random import randrange
x = randrange(4)
if x == 0:
return 'value a-z'
elif x == 1:
return 'value A-Z'
elif x == 2:
return 'value 0-9'
elif x == 3:
return 'punctuation'