在使用 Python 的过程中,你可能有时需要使用随机字符串,在 Python 中有多种方式生成随机字符串,供你使用。

本文将介绍如何在 Python 中生成随机字符串。

在 Python 中可以使用如下几种方式生成随机字符串:

  • Python 中使用 uuid.uuid4() 生成随机字符串
  • Python 中使用 random.choice() 生成随机字符串
  • Python 中使用 StringGenerator 模块生成随机字符串

Python 中使用 uuid.uuid4() 生成随机字符串

推荐使用该方法,该方法最简单,并且生成的字符串有一定的长度。

Python 3 内置了 uuid 模块,uuid 模块提供了很多生成字符串的方法,但是要生成随机字符串需要使用 uuid.uuid4() 方法。

Python 中使用 uuid.uuid4() 生成随机字符串示例:

import uuid

uuid_str = uuid.uuid4()

print(uuid_str)

Python 中使用 random.choice() 生成随机字符串

在 Python 中使用 random.choice() 生成随机字符串,需要自定义函数,可以使用如下自定义函数生成随机字符串:

import string
import random

def generate_random_string(length):
    return "".join(
        random.choice(string.ascii_letters + string.digits)
        for x in range(length)
    )

print(generate_random_string(10))

解释说明

  • random.choice(string) 方法:从给定的字符串中随机的选择一个字符,你可以指定一个字符串。
  • string.ascii_letters:string 模块的内置属性,其值为一个字符串,内容为:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  • string.digits:string 模块的内置属性,其值为一个字符串,内容为:"0123456789"
  • for 循环的变量 i 没有使用

Python 中使用 StringGenerator 模块生成随机字符串

StringGenerator 模块是一个第三方模块,使用该模块需要先安装 StringGenerator 模块:

pip install StringGenerator

使用 StringGenerator().render() 方法生成一个随机字符串:

from strgen import StringGenerator
random_str = StringGenerator(r"[\w]{30}").render()
print(random_str)

使用 StringGenerator().render_set() 方法生成多个随机字符串:

from strgen import StringGenerator
random_strs = StringGenerator(r"[\w]{30}").render_set(3)
print(random_strs)

解释说明

  • StringGenerator 的参数为一个正则表达式,关于正则表达式的内容请自行查看
  • [\w]{30}\w 为所有字母数字字符;{30} 为重复 30 次,即生成 30 个字符
  • StringGenerator().render():生成一个随机字符串
  • 生成多个随机字符串请使用其他函数,render_set()render_list()
  • render_set(num):生成多个没有重复的随机字符串,其作用与 render_list(num, unique=True) 作用相同,其结果为一个集合
  • render_list(num, unique):生成多个随机字符串,可有重复值,生成无重复的随机字符串提供参数 unique=True,其结果为一个列表

结语

在本文中介绍了如何在 Python 中生成随机字符串,介绍了三种方式生成随机字符串,分别是:在 Python 中使用 uuid.uuid4() 生成随机字符串,Python 中使用 random.choice() 生成随机字符串,Python 中使用 StringGenerator 模块生成随机字符串。