Python生成随机数字和字符详解:random与Faker库实战

清欢
清欢
发布时间:2026-10-16 | 4人浏览过
原创

本文详细介绍Python中生成随机数字和字符的两种主要方式。首先解析内置random库,涵盖random.randint、choice及sample等函数的具体用法与代码示例。其次介绍Faker库的安装与配置,演示如何生成姓名、地址、身份证等多样化伪数据。通过对比两种方案,帮助开发者根据实际需求选择合适的数据生成工具。

random库

random是Python标准库的一部分,使用前只需导入 import random 即可,无需额外安装。

以下是random库的基础用法示例:

import random

print(random.random())	# 0.8564557389763434
print(random.uniform(0, 100))	# 78.19630268831175
print(random.randint(0, 100))	# 45

print(random.choice('12345'))	# 4
print(random.choice([1,2,3,4,5]))	# 1
print(random.choice((1,2,3,4,5)))	# 5

print(random.sample('12345', 3))	# ['1', '5', '2']
print(random.sample([1,2,3,4,5], 3))	# [5, 4, 1]
print(random.sample((1,2,3,4,5), 3))	# [4, 5, 1]

list = [1, 2, 3, 4, 5]
random.shuffle(list)
print(list)	# [3, 5, 4, 1, 2]

print(random.randrange(0,20,5))	# 10

生成指定长度的随机字符串

利用random.randint(0,n)函数

实现思路如下:首先定义一个包含所有可用字符的基础序列,根据目标字符串长度循环调用random.randint(0,n)获取随机索引,其中n为序列长度减1。通过该索引从序列中选取字符并拼接,最终返回生成的字符串。

import random
import string

def generate_random_str(randomlength=16):
  """
  生成一个指定长度的随机字符串
  """
  random_str =''
    # 使用string库中的字母、数字和标点符号组成一个基础字符序列
  base_str = string.ascii_letters + string.digits + string.punctuation
  length =len(base_str) -1
  for i in range(randomlength):
    random_str +=base_str[random.randint(0, length)]
  return random_str

print(generate_random_str(30))	# T`^7:C?z4h0qd!JpO:MFNB2_GL>dXm

使用random.choice()进行随机选择

import random
import string

def generate_random_str(randomlength=16):
    """
      生成一个指定长度的随机字符串
    """
    # 使用string库中的字母、数字和标点符号拼接程序列
    str_list = [random.choice(string.ascii_letters + string.digits + string.punctuation) for i in range(randomlength)]
    random_str = ''.join(str_list)
    return random_str
print(generate_random_str(30))	# ')8D@Bu&\1ltf!}HUcI-.;^>Vy[n|V

使用random.sample()进行随机选择

import random
import string

def generate_random_str(randomlength=16):
    """
    生成一个指定长度的随机字符串
    """
    # 使用string库中的字母、数字和标点符号组成一个基础字符序列
    base_str = string.ascii_letters + string.digits + string.punctuation
    str_lst = random.sample(base_str, randomlength)	#randomlength<=lenth(base_str)
    random_str = ''.join(str_lst)
    return random_str

Faker库

Faker库可用于生成各类伪数据,包括姓名、地址、邮箱、电话、密码及文本段落等。安装命令为:pip install faker。导入方式为:from faker import Faker。

具体应用示例如下:

from faker import Faker
fk = Faker(locale='zh-Cn')

# 姓名
print(fk.name())	# 刘娜
# 身份证
print(fk.ssn())		# 141022195412020845
# 手机号
print(fk.phone_number())	# 18226186826
# 邮箱
print(fk.email())	# zoujie@example.org

个人信息生成

数字数据生成

文本与加密相关数据生成

日期数据生成

地理信息生成

from faker import Faker
fk = Faker(locale='zh-Cn')

# 从[0,9]中随机获取7位数字(可重复)
print([fk.random_digit() for i in range(7)])	# [2, 0, 7, 8, 2, 3, 2]
# 从[0,9]中随机获取7位数字(不可重复)
print([fk.unique.random_digit() for i in range(7)])		# [4, 9, 3, 6, 8, 5, 2]

以上就是关于Python生成随机数字和字符的详细介绍,更多相关Python生成随机数字内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表