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 @ 2023-06-16 07:55  晓枫的春天  阅读(39)  评论(0编辑  收藏  举报