python随机模块random的22种函数(小结)

1. 前言

Python是一种高级编程语言,可以应用于各种领域,如人工智能、数据分析、Web开发等。Python的随机模块random提供了22种函数,可以让开发者轻松实现随机数生成,以及一些与随机数生成有关的功能。本篇文章将介绍random模块中的22种函数。

2. 随机整数生成

2.1 randint()

randint(a, b)函数可以生成一个在指定范围内的随机整数,包括两个端点。其中a、b是整数,且a≤x≤b。

import random

#生成100~200的随机整数

a = random.randint(100,200)

print(a)

运行结果是:186

2.2 randrange()

randrange([start], stop[, step])函数可以生成一个在指定范围内的随机整数,不包括stop。其中start和step是可选参数,start缺省时默认为0,step缺省时默认为1,可指定步长,即隔几个数取一个数。如果start和step都缺省,则相当于randint(0,stop-1)。

import random

#生成0~100的随机整数

a = random.randrange(0,100)

print(a)

#生成0~10的随机偶数

b = random.randrange(0,10,2)

print(b)

运行结果是:98 0

2.3 getrandbits()

getrandbits(k)函数可以生成一个k位的随机整数,返回一个非负整数。

import random

#生成一个8位的随机整数(范围是0~255)

a = random.getrandbits(8)

print(a)

运行结果是:118

3. 随机浮点数生成

3.1 random()

random()函数可以生成一个0到1的随机浮点数。

import random

#生成一个0~1的随机浮点数

a = random.random()

print(a)

运行结果是:0.14641774797509772

3.2 uniform()

uniform(a, b)函数可以生成一个在指定范围内的随机浮点数,其中a、b是浮点数,且a≤x≤b。

import random

#生成一个2~4的随机浮点数

a = random.uniform(2,4)

print(a)

运行结果是:2.97985162059715

4. 随机序列操作

4.1 choice()

choice(seq)函数可以从指定的序列中随机选择一个元素,seq可以是列表、元组或字符串。

import random

#从元组中随机选择一个元素

a = random.choice(('apple','banana','cherry'))

print(a)

#从字符串中随机选择一个字符

b = random.choice('abcde')

print(b)

运行结果是:cherry e

4.2 shuffle()

shuffle(seq)函数可以将指定的序列中的元素随机打乱,seq可以是列表。

import random

#打乱列表中的元素

a = [1,2,3,4,5]

random.shuffle(a)

print(a)

运行结果是:[2, 4, 5, 1, 3]

4.3 sample()

sample(population, k)函数可以从指定的序列(population)中,随机选择k个元素,返回列表类型。

import random

#从序列中随机选择3个元素

a = [1,2,3,4,5]

b = random.sample(a,3)

print(b)

运行结果是:[5, 3, 2]

5. 概率分布

5.1 random()

random()函数可以生成一个0到1的随机数,可用于实现概率分布。

例如,我们可以使用random()函数来模拟投掷一枚硬币,判断正反面的概率:

import random

#模拟投掷一枚硬币

if random.random() < 0.5:

print('正面')

else:

print('反面')

运行结果可能是:反面

5.2 uniform()

uniform(a, b)函数可以生成一个在指定范围内的随机浮点数,可用于实现概率分布。

例如,我们可以使用uniform()函数来模拟投掷一枚骰子,判断点数的概率:

import random

#模拟投掷一枚骰子

a = random.uniform(1,7)

if a <= 1.5:

print('点数为1')

elif a <= 2.5:

print('点数为2')

elif a <= 3.5:

print('点数为3')

elif a <= 4.5:

print('点数为4')

elif a <= 5.5:

print('点数为5')

else:

print('点数为6')

运行结果可能是:点数为3

5.3 gauss()

gauss(mu, sigma)函数可以生成一个服从高斯(正态)分布的随机数,其中mu是均值,sigma是标准差。

import random

#生成一个服从高斯分布的随机数

a = random.gauss(0,1)

print(a)

运行结果可能是:0.21277952864204598

6. 种子生成

6.1 seed()

seed(a=None)函数用于生成随机序列,a是种子参数,如果不指定a,则使用系统时间作为种子。

在同一种子下,使用随机函数生成的随机数序列是相同的。

import random

#使用种子生成随机序列

random.seed(100)

a = random.random()

b = random.random()

random.seed(100)

c = random.random()

d = random.random()

print(a,b)

print(c,d)

运行结果是:0.1456692551041303 0.45472190799747655

注意:不同的种子生成的随机序列不同,但同一种子下生成的随机序列是相同的。

7. 总结

Python的随机模块random提供了22种函数,能够方便地实现随机数生成和一些与随机数生成相关的功能。这些函数可以分为随机整数、随机浮点数、随机序列操作、概率分布、种子生成等五个方面。

随机模块random不仅在科学计算和模拟中有所应用,在Python编程的学习中也有重要的作用。

当需要产生一个随机数时,可以根据具体的需求来选择相应的函数,比如需要生成随机整数可使用randint()函数,需要给列表随机排序可使用shuffle()函数,需要模拟概率分布可使用uniform()函数等。

同时,随机数的产生受到种子的影响,种子相同则随机序列相同,种子不同则随机序列不同。

后端开发标签