我试着搜索了很多,但找不到合适的解决方案,所以在这里发帖。我是Python的新手,我正在尝试创建一个简单的密码生成器应用程序,该应用程序由8个字符组成,应该由1个大写、1个小写、1个特殊字符和1个数值组成。我可以得到这些东西,并创建一个4个字母的密码,包括大写、小写、特殊字符和数值。对于剩下的4个字符,我想从由所有这些选项组成的列表中随机选择选项,但由于某种原因,我无法随机获得它的值。当我试图从列表中的列表中访问随机选择时,我遇到了以下错误:
TypeError: list expected at most 1 argument, got 4
我想知道如何为最终密码中的其余4个值选择一个随机值,该值可以是小写、大写、数字或特殊字符。我知道我可以使用for
循环来完成同样的任务,但我想随机完成,所以我正在尝试这种方法。
以下是我到目前为止的代码,以及我试图获得列表中随机值的一些东西:
import random
import string
def passwordGenerator():
lowerchars = list(string.ascii_lowercase)
upperchars = list(string.ascii_uppercase)
speciachars = ['&','!','_','@']
numericchars = list(range(0,9))
otherrandom = list(string.ascii_lowercase, string.ascii_uppercase, range(0,9), ['&','!','_','@'])
#otherrandom = list(list(string.ascii_lowercase), list(string.ascii_uppercase) list(range(0,9)), ['&','!','_','@'])
print(random.choice(otherrandom))
#print(random.choice(random.choice(otherrandom)))
password = random.choice(lowerchars) + random.choice(upperchars) + random.choice(speciachars) + str(random.choice(numericchars))
passwordGenerator()
list((方法只接受一个参数。你可以做
otherrandom = lowerchars + upperchars + numericchars + speciachars
这会将所有列表添加到一起,这可能正是您想要的。