如何在Python中生成带有大写字母和数字的随机字符串?

您可以使用random.choice(list_of_choices)获取随机字符。然后循环遍历并获取列表,最后加入该列表以获取字符串。这里的选择列表是大写字母和数字。例如:

import string
import random
def get_random_string(length):
    random_list = []
    for i in xrange(length):
        random_list.append(random.choice(string.ascii_uppercase + string.digits))
    return ''.join(random_list)
print get_random_string(10)

这将给我们输出:

'35WO8ZYKFV'

这也可以在一行中完成:

>>> ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in xrange(10))
'35WO8ZYKFV'

在Python 3中,我们有一个随机数。choices方法,它将第二个参数作为随机字符串的长度。它可以用来获得更短的版本:

>>> ''.join(random.choices(string.ascii_uppercase + string.digits), k=10)
'35WO8ZYKFV'