Python random模块(随机数)

本文详细介绍了Python中random模块的功能,包括生成指定范围内的整数、从序列中选择随机元素、生成0到1之间的随机浮点数、生成指定范围内的随机浮点数、从指定范围内获取随机数以及对列表进行随机排序和抽取片段。通过实例展示了各种方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python random模块

random模块用于生成随机数


random.randint(x,y)
用于生成指定范围内的整数
参数x为下限,参数y为上限,x,y均可取到
即生成的随机数n满足:x<=n<=y

random.randint(1,10) #生成一个随机数n 且1<=n<=10(每次运行时得到的n可能都不同
random.randint(10,10) #生成随机数n (每次运行时都是10)

random.choice(sequence)
用于从序列中获取一个随机元素
(参数sequence表示有序类型,如列表(list)、元组(tuple)、字符串(string))

#字符串(string)
import random
s=random.choice("不想掉头发")
print(s)
#结果随机输出“不想掉头发”中的任意一个字
#列表(list)
import random
s=random.choice(['I','am','a','good','girl'])
print(s)
#输出 I 、am 、a 、good 、girl 中的任意一个单词
#元组(tuple)
import random
s=random.choice(('tuple','list','dict'))
print(s)
#输出tuple、list、dict中的任意一个单词

random.random()
用于生成一个0~1的随机浮点数
即生成的随机数n满足:0<=n<1.0


random.uniform(x,y)
用于生成一个指定范围内的随机符点数
参数x,y一个为上限,一个为下限,取决于x,y的大小,上下限均可取到。
即:若x>y,则生成的随机数n:y<=n<=x;若x<y,则生成随机数n:x<=n<=y

import random
print(random.uniform(10,30))
print(random.uniform(30,10))
#(每次运行得到的结果可能不同)
#11.246185250426157
#15.620051277809475


random.randrange([start],stop[,step])
用于从指定范围内,按指定基数递增的集合中获取一个随机数。
如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。
random.randrange(10, 100, 2)在结果上与random.choice(range(10, 100, 2) 等效。


random.shuffle(x[, random])
用于将一个列表中的元素打乱。

import random
s=['Python','is','simple','amazing','and so on']
random.shuffle(s)
print(s)
#['simple', 'amazing', 'Python', 'is', 'and so on']
#每次运行出现的结果可能不同

random.sample(sequence,x)
用于从指定序列中随机获取指定长度的片断(不会修改原有序列)

import random
L=[1,2,3,4,5,6,7,8,9]
s=random.sample(L,5) #在列表L中随机获取5个数,返回一个列表
print(L) #L没有被修改
print(s)
#[1, 4, 9, 8, 3]
#每次运行出现的结果可能不同

### Python 中使用 `random` 模块生成随机数的方法 #### 1. 随机浮点数生成 `random.random()` 方法用于生成一个 [0.0, 1.0) 范围内的随机浮点数[^4]。 ```python import random print(random.random()) # 输出如:0.37444887175646646 ``` #### 2. 随机整数生成 `random.randint(a, b)` 方法返回一个范围在 `[a, b]` 内的随机整数,包括端点值[^2]。 ```python print(random.randint(1, 10)) # 输出如:7 ``` #### 3. 随机选择列表中的元素 `random.choice(seq)` 方法从非空序列中随机选择一个元素[^3]。 ```python my_list = ['apple', 'banana', 'cherry'] print(random.choice(my_list)) # 输出如:banana ``` #### 4. 打乱列表顺序 `random.shuffle(x)` 方法将列表 `x` 的顺序随机打乱[^2]。 ```python my_list = [1, 2, 3, 4, 5] random.shuffle(my_list) print(my_list) # 输出如:[3, 1, 4, 2, 5] ``` #### 5. 随机抽取多个元素 `random.sample(population, k)` 方法从指定的总体 `population` 中随机抽取 `k` 个不重复的元素。 ```python my_list = [1, 2, 3, 4, 5] print(random.sample(my_list, 3)) # 输出如:[2, 5, 1] ``` #### 6. 带权重的随机选择 虽然 `random` 模块本身没有直接支持带权重的随机选择方法,但可以通过结合 `random.choices()` 和权重参数实现。 ```python choices = ['red', 'green', 'blue'] weights = [10, 5, 1] print(random.choices(choices, weights=weights, k=1)) # 输出如:['red'] ``` #### 7. 随机生成符合特定分布的数值 `random` 模块提供了多种分布的随机数生成方法,例如均匀分布、正态分布等[^3]。 - **均匀分布**:`random.uniform(a, b)` 返回一个范围在 `[a, b]` 内的随机浮点数。 - **正态分布**:`random.gauss(mu, sigma)` 返回一个符合正态分布(均值为 `mu`,标准差为 `sigma`)的随机浮点数。 ```python print(random.uniform(1.0, 2.0)) # 输出如:1.573219427815798 print(random.gauss(0, 1)) # 输出如:-0.4219012726883284 ``` #### 8. 设置随机数种子 通过 `random.seed(a=None)` 方法可以设置随机数种子,确保每次运行程序时生成的随机数序列相同[^4]。 ```python random.seed(10) print(random.randint(1, 100)) # 输出固定值 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值