选择要以随机字符串形式打印的特定符号

2024-04-28 14:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图打印一个随机字符串,其中包含大小写字母,数字和符号。这是我的密码:

genpassword = ''.join([random.choice(string.ascii_letters
                                     + string.digits
                                     + string.punctuation)
                       for n in range(12)])

到目前为止,它的工作。但是,我希望程序只打印特定的符号,这些符号如下:

symbols = ["!","$","%","^","&","*","(",")","-","_","=","+"]

字符串.标点符号打印所有这些符号,但也打印一些其他符号。你知道吗

那么如何让我的程序生成一个只包含上面列表中的符号的字符串呢?


Tags: 字符串程序密码stringascii符号数字random
1条回答
网友
1楼 · 发布于 2024-04-28 14:31:28

您可以将所有需要的字符放入一个字符串中,然后使用该字符串代替string.punctuation

symbols = "!$%^&*()-_=+"
genpassword = ''.join([random.choice(string.ascii_letters + string.digits + symbols ) for n in range(12)])

这实际上就是代码的工作方式,例如string.ascii_letters也是一个字符串,请参见in Python解释器(一种很好的实验方法):

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

相关问题 更多 >