如何在 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'(其 ASCII 码为 48)和 'Z'(其 ASCII 码为 90)之间的随机整数,然后使用 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日

946 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.