Python random 模块简介

Python 提供的 random 模块实现了各种分布式的伪随机数生成器。

常用函数

random.seed(a)

设置初始化随机因子,可以输出相同随机序列,a 取值整数或浮点数,不设置时默认系统时间作为种子;

复制代码
import random

print('不指定种子')
for i in range(5):
    res = random.randint(1, 20)
    print(res, end=' ')
print()
print('指定种子')
random.seed(2)
for i in range(5):
    res = random.randint(1, 20)
    print(res, end=' ')
复制代码

运行三次效果如下

复制代码
'''
不指定种子
2 10 13 17 6 
指定种子
2 3 3 12 6 

不指定种子
17 13 1 7 6 
指定种子
2 3 3 12 6 

不指定种子
3 18 10 10 9 
指定种子
2 3 3 12 6 
'''
复制代码

random.random()

生成一个大于0小于1的浮点数

复制代码
for i in range(5):
    print(random.random())
'''
0.07538896244449411
0.7265073416776953
0.4081894266461512
0.6509242609401321
0.6651385639220018
'''
复制代码

random.uniform(a,b)

生成一个a<= 随机数  <= b

复制代码
for i in range(5):
    print(random.uniform(1, 2))
'''
1.3319566333129689
1.8690791564469724
1.5062883650223848
1.5110049422767893
1.0468486028150155
'''
复制代码

random.randint(a,b)

 生成范围内随机整数
复制代码
for i in range(5):
    print(random.randint(1, 10))
'''
9
2
7
8
2
'''
复制代码

random.randrange(start,stop,[step])

按范围生成随机数,可以指定步长,默认步长1 

复制代码
for i in range(5):
    print(random.randrange(1, 10,2))

'''
7
3
9
3
7
'''
复制代码

random.choice(seq)

从迭代对象中随机返回一个元素

复制代码
list_1 = [1,2,3,'a','b','c']
for i in range(5):
    print(random.choice(list_1))
'''
2
b
3
a
a
'''
复制代码

随机数案例

生成一个含数字和字母的字符串

复制代码
import string
import random


def get_random_pwd(length):
    '''
    生成一个含有数字和字母的字符串
    :param length: 字符串长度
    :return:
    '''

    num_cnt = random.randint(1, length - 1)
    letter_cnt = length - num_cnt

    #数字随机序列
    num_list = [random.choice(string.digits) for _ in range(num_cnt)]
    #字母随机序列
    letter_list = [random.choice(string.ascii_letters) for _ in range(letter_cnt)]

    #拼装
    all_list= num_list + letter_list

    #乱序
    random.shuffle(all_list)
    res = ''.join([i for i in all_list])
    return res

for i in range(5):
    print(get_random_pwd(8))

'''
6680g763
137Yi7O0
1l1w08Gz
6066464w
X5PcxdDU
'''
复制代码
posted @   晓枫的春天  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2022-06-16 Flink 系统架构
点击右上角即可分享
微信分享提示