Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以Python方式选择随机字符?_Python_Random - Fatal编程技术网

如何以Python方式选择随机字符?

如何以Python方式选择随机字符?,python,random,Python,Random,我想用python生成一个10个字母数字字符的长字符串。下面是从字母数字字符列表中选择随机索引的一部分 我的计划: 有没有更好的随机选择角色的方法 通常的方法是随机选择 >>> import string >>> import random >>> random.choice(string.ascii_letters + string.digits) 'v' random本身不是一个函数。Python 3中的传统方式是: import ra

我想用python生成一个10个字母数字字符的长字符串。下面是从字母数字字符列表中选择随机索引的一部分

我的计划:


有没有更好的随机选择角色的方法

通常的方法是随机选择

>>> import string
>>> import random
>>> random.choice(string.ascii_letters + string.digits)
'v'
random本身不是一个函数。Python 3中的传统方式是:

import random
import string

random.choice(string.ascii_letters + string.digits)
string.letters取决于区域设置,在Python 3中已删除

试试这个:

def getCode(length = 10, char = string.ascii_uppercase +
                          string.digits +           
                          string.ascii_lowercase ):
    return ''.join(random.choice( char) for x in range(length))
运行:

如果您有一个列表,那么您可以这样做:

>>> set_list = ['a','b','c','d']
>>> getCode(2, ''.join(set_list))
'da'
如果要使用特殊符号,可以使用字符串的标点符号:

>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

string.letters有点棘手,因为它取决于语言环境,在Python3中不再可用。我会使用string.ascii_字母+string.digits作为OP的用例。Perfect适合我真正的sweet:我知道,这只是一个算法,将使用标准的python伪生成器+1 sweet,将接受前面的答案,不过:DWhy是string_ascii_大写+string.ascii_小写的必要吗?Python内置了string.ascii_字母,以便在这种情况下使用。@RicardoAltamirano是的,你是对的。这是我在工作中使用的代码。所以我在这里给出了我的代码
>>> set_list = ['a','b','c','d']
>>> getCode(2, ''.join(set_list))
'da'
>>> print string.punctuation
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~