Python 如何生成带有符号的随机字符串

Python 如何生成带有符号的随机字符串,python,symbols,generated,Python,Symbols,Generated,我的代码: import random import string random = ''.join([random.choice(string.ascii_letters + string.digits ) for n in range(12)]) 到目前为止,它打印的字符串包含大写、小写字母和数字,但我不知道如何让它也打印符号。怎么样: import random import string random = ''.join([random.choice(string.ascii_lett

我的代码:

import random
import string
random = ''.join([random.choice(string.ascii_letters + string.digits ) for n in range(12)])
到目前为止,它打印的字符串包含大写、小写字母和数字,但我不知道如何让它也打印符号。

怎么样:

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


要生成随机字符串,我们需要使用以下两个Python模块

  • 字符串模块,其中包含各种字符串常量,其中包含 所有情况下的ASCII字符。字符串模块包含单独的 小写、大写字母、数字和特殊字符的常量 人物

  • 随机模块执行随机生成

    让我们看看生成一个固定长度n的随机字符串的步骤

  • 使用字符串常量string.ascii_小写来获取所有 单个字符串中的小写字母

  • string.ascii_小写常量包含所有小写字母。 即,“ABCDEFGHIjklmnopqrstuvxyz”为循环运行n次,以 使用random.choice从字符串常量中拾取单个字符 方法,并使用联接方法将其添加到字符串变量中。这个 用于从列表中选择单个字符的选择方法

  • 例如,假设您想要一个长度为6的随机字符串,那么我们可以 执行random.choice()方法6次,从中选择一个字母 string.ascii_为小写,并将其添加到字符串变量中

现在让我们看看代码

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

使用此链接了解更多详细信息

另一个变体:

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

在这种情况下,您不会重新定义
random
表单库。

string.ascii\u字母+string.digits+'!@$%^&*()
将它们添加到混音中你所说的符号是什么意思?有unicode字符吗?或者仅仅是ascii码?我猜是字符串。可打印的不是你想要的,因为它包括换行符、制表符等?
import random
import string
random_string = ''.join([random.choice(string.ascii_letters + string.digits + string.punctuation ) for n in range(12)])