如何生成带有符号的随机字符串
Posted
技术标签:
【中文标题】如何生成带有符号的随机字符串【英文标题】:How to generate a random string with symbols 【发布时间】:2018-04-14 20:50:18 【问题描述】:我的代码:
import random
import string
random = ''.join([random.choice(string.ascii_letters + string.digits ) for n in range(12)])
到目前为止,它打印了一个包含大写、小写字母和数字的字符串,但我不知道如何让它也打印符号。
【问题讨论】:
string.ascii_letters + string.digits + '!@#$%^&*()_'
加入他们
符号是什么意思? unicode 中的任何字符?还是仅仅来自 ascii?
我猜string.printable
不是您想要的,因为它包含换行符、制表符等?
【参考方案1】:
怎么样:
import random
import string
random = ''.join([random.choice(string.ascii_letters + string.digits + string.punctuation ) for n in range(12)])
【讨论】:
【参考方案2】:试试:
import random
import string
random = ''.join([random.choice(string.ascii_letters + string.digits ) for n in
range(12)])
print(random)`
【讨论】:
【参考方案3】:要生成随机字符串,我们需要使用以下两个 Python 模块。
包含各种字符串常量的字符串模块,其中包含 所有情况下的 ASCII 字符。字符串模块包含单独的 小写、大写字母、数字和特殊字符的常量 字符。
执行随机生成的随机模块。
让我们看看生成一个固定长度为n的随机字符串的步骤。
使用字符串常量string.ascii_lowercase来获取所有的 单个字符串中的小写字母。
string.ascii_lowercase 常量包含所有小写字母。 即,'abcdefghijklmnopqrstuvwxyz' 运行循环 n 次到 使用 random.choice 从字符串常量中选择单个字符 方法并使用连接方法将其添加到字符串变量中。这 用于从列表中选择单个字符的选择方法
例如,假设你想要一个长度为 6 的随机字符串,那么我们可以 执行 random.choice() 方法 6 次以从中选择一个字母 string.ascii_lowercase 并将其添加到字符串变量中。
现在让我们看看代码。
import random
import string
def randomStringwithDigitsAndSymbols(stringLength=10):
"""Generate a random string of letters, digits and special characters """
password_characters = string.ascii_letters + string.digits + string.punctuation
return ''.join(random.choice(password_characters) for i in range(stringLength))
print("Generating Random String password with letters, digits and special characters ")
print ("First Random String ", randomStringwithDigitsAndSymbols() )
print ("Second Random String", randomStringwithDigitsAndSymbols(10) )
print ("Third Random String", randomStringwithDigitsAndSymbols(10) )
输出:
Generating Random String password with letters, digits and special characters
First Random String password qKDhC++T(4
Second Random String password U+(ew5a[#U
Third Random String password uf-g,s6'pX
使用此链接了解更多详情Click here
【讨论】:
【参考方案4】:另外一个变种:
import random
import string
random_string = ''.join([random.choice(string.ascii_letters + string.digits + string.punctuation ) for n in range(12)])
在这种情况下,您无需重新定义 random
表单库。
【讨论】:
以上是关于如何生成带有符号的随机字符串的主要内容,如果未能解决你的问题,请参考以下文章