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


您可以使用Python生成包含大写字母和数字的随机字符串。这里有三种不同的方法。

使用random.choices()和string.ascii_uppercase

在这个方法中,我们将使用random.choices()函数从string.ascii_uppercase和string.digits字符串中随机选择字符来生成随机字符串。

示例

我们首先导入random和string模块,我们将分别使用它们来生成随机字符和创建字符串。

我们定义要生成的随机字符串的长度(在这个例子中是10)。

我们定义可以用来创建随机字符串的可能的字符,它是string.ascii_uppercase(所有大写字母)和string.digits(所有数字)的组合。

我们使用random.choices()函数从characters字符串中随机选择k个(等于随机字符串的长度)字符。

然后,我们使用.join()方法将这些字符连接成单个字符串。

最后,我们打印生成的随机字符串。

import random
import string
# define the length of the random string
length = 10
# define the possible characters that can be used
characters = string.ascii_uppercase + string.digits

# use random.choices() to generate the random string
result = ''.join(random.choices(characters, k=length))
# print the result
print(result)

输出

ZMVICXPMKQ

使用random.choice()和循环

在这个方法中,我们将使用for循环和random.choice()函数来生成随机字符并将它们添加到字符串中,直到达到所需的长度。

示例

我们首先导入random和string模块,我们将分别使用它们来生成随机字符和创建字符串。

我们定义要生成的随机字符串的长度(在这个例子中是10)。

我们定义可以用来创建随机字符串的可能的字符,它是string.ascii_uppercase(所有大写字母)和string.digits(所有数字)的组合。

我们定义一个名为result的空字符串变量来保存生成的随机字符。

我们使用for循环使用random.choice()函数生成一个新的随机字符,并在每次循环迭代中将其添加到result字符串中,直到我们获得所需长度的随机字符串。

最后,我们打印生成的随机字符串。

import random
import string
# define the length of the random string
length = 10
# define the possible characters that can be used
characters = string.ascii_uppercase + string.digits

# define an empty string to hold the random characters
result = ''
# use a loop to generate the random string
for i in range(length):
    result += random.choice(characters)
# print the result
print(result)

输出

Y9V1OVO4H4

使用uuid.uuid4()和str.replace()

在这个方法中,我们将使用uuid.uuid4()函数生成一个随机UUID(通用唯一标识符),然后使用str.replace()方法删除连字符并将字符串转换为全大写字母。

示例

我们导入uuid模块,我们将使用它来生成随机UUID。

我们使用uuid.uuid4()函数生成一个随机UUID,并使用str()方法将其转换为字符串。

我们使用.replace()方法删除UUID字符串中的连字符,并用空字符串替换它们。

import uuid
# generate a random UUID
random_uuid = str(uuid.uuid4())
# remove the hyphens and convert to uppercase letters
result = random_uuid.replace('-', '').upper()
# print the result
print(result)

输出

3D9FF7622A494CABA861D0EE62547BED

使用random.sample()和string.ascii_uppercase

在这个方法中,我们将使用random.sample()函数从string.ascii_uppercase和string.digits字符串中随机选择k个字符(其中k是所需随机字符串的长度)。

示例

我们首先导入random和string模块,我们将分别使用它们来生成随机字符和创建字符串。

我们定义要生成的随机字符串的长度(在这个例子中是10)。

我们定义可以用来创建随机字符串的可能的字符,它是string.ascii_uppercase(所有大写字母)和string.digits(所有数字)的组合。

我们使用random.sample()函数从characters字符串中随机选择k个(等于随机字符串的长度)字符。

然后,我们使用.join()方法将这些字符连接成单个字符串。

最后,我们打印生成的随机字符串。

import random
import string
# define the length of the random string
length = 10
# define the possible characters that can be used
characters = string.ascii_uppercase + string.digits
# use random.sample() to generate the random string
result = ''.join(random.sample(characters, k=length))
# print the result
print(result)

输出

VJMFQO43XL

使用random.randint()和chr()

在这个方法中,我们将使用random.randint()函数生成'0'和'Z'的ASCII码之间的随机整数,然后使用chr()函数将这些整数转换为它们对应的ASCII字符。

示例

我们导入random模块,我们将使用它来生成随机整数和字符。

我们定义要生成的随机字符串的长度(在这个例子中是10)。

我们使用random.randint()函数生成'0'(即48)和'Z'(即90)的ASCII码之间的随机整数,然后使用chr()函数将其转换为其对应的ASCII字符。

我们使用for循环重复此过程以获得所需长度的随机字符串,并将这些字符使用.join()方法连接成单个字符串。

最后,我们打印生成的随机字符串。

import random
# define the length of the random string
length = 10
# use random.randint() and chr() to generate the random string
result = ''.join(chr(random.randint(48, 90)) for _ in range(length))
# print the result
print(result)

输出

W0FW?RL2?Z

这些是一些在Python中生成包含大写字母和数字的随机字符串的示例。您可以选择最符合您的需求和偏好的方法。

更新于:2023年8月10日

936 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告