Python的random模块是一个非常强大的工具,用于生成随机数和随机选择。它提供了许多函数和方法,可以满足各种随机化需求。本文将介绍random模块的基本功能和常见用法,以帮助读者更好地理解和利用这个模块。
返回整数
- random.randange()
语法如下:
-
random.randrange(stop) -
random.randrange(start, stop[, step])
参数解析:
- stop: 末尾数字,不包含(取不到 stop 这个值)
- start: 起始数字,包含(取得到 start 这个值)
- step: 步长
示例如下:
-
import random -
for i in range(5): -
print(random.randrange(30)) -
############ -
9 -
25 -
21 -
3 -
20 -
------------------ -
import random -
for i in range(5): -
print(random.randrange(10, 20)) -
########### -
14 -
12 -
11 -
14 -
13 -
------------------- -
import random -
for i in range(5): -
print(random.randrange(20, 30, 2)) -
############ -
24 -
28 -
22 -
22 -
24
- random.randint()
语法如下:
random.randint(a, b)
语法说明:
- 该语句相当于
random.randint(a, b+1) - 返回随机整数 N 满足
a <= N <= b
示例如下:
-
import random -
for i in range(5): -
print(random.randint(10,20)) -
###### -
12 -
15 -
10 -
13 -
13
注:该方法可以返回两端的值
返回浮点数
- random.random()
语法格式:
random.random()
上述语法将返回一个[0.0,1.0)之间的一个浮点数
使用示例
-
import random -
for i in range(5): -
print(random.random()) -
----------------- -
0.051698653828633145 -
0.10619823413246887 -
0.33732593583951986 -
0.6763699334756532 -
0.16816052346812582 -
import math -
import random -
for i in range(6): -
print(math.ceil(random.random() * 1000)) -
--------------------- -
67 -
38 -
612 -
639 -
454 -
870
- random.uniform()
语法格式如下:
random.uniform(a, b)
语法说明:
- 返回一个随机浮点数 N
- 当
a <= b时,a <= N <= b - 当
b < a时,b <= N <= a
使用示例
-
import random -
for i in range(5): -
print(random.uniform(1, 10)) -
############### -
5.457242422186069 -
8.633135221688587 -
2.9232627928020625 -
7.921168676991703 -
2.07340428271263 -
--------------------- -
import random -
for i in range(5): -
print(random.uniform(12, 3)) -
#################### -
3.1848989873887614 -
5.15029109210898 -
3.947059333936842 -
9.637384540893176 -
4.816027706079555
以列表作为参数
- random.choice()
语法如下:
random.choice(seq)
语法说明:
- 从非空序列 seq 返回一个随机元素
- 如果 seq 为空,会抛出 IndexError
示例如下:
-
import string -
print(random.choice([1, 2, 3, 4, 5])) -
# 字母数组 -
print(random.choice(["a", "b", "c"])) -
# 字母元组 -
print(random.choice(("a", "b", "c"))) -
# 字符串 -
print(random.choice("abcdef")) -
# string 模块返回的大小写字母字符串 -
print(random.choice(string.ascii_letters)) -
# string 模块返回的数字字符串 -
print(random.choice(string.digits)) -
# string 模块返回的数字字符串+大小写字母字符串 -
print(random.choice(string.digits + string.ascii_uppercase)) -
############# -
3 -
b -
c -
d -
e -
7 -
H
- random.choices()
语法如下:
random.choices(population, weights=None, *, cum_weights=None, k=1)
参数说明:
- populaiton:序列
- weights:普通权重
- cum_weights:累加权重
- k:选择次数
注:weights 和 cum_weights 不能同时传,只能选择一个来传
示例如下:
-
import random -
a = [1,2,3,4,5] -
print(random.choices(a,k=5)) -
######### -
[4, 3, 5, 3, 5] -
--------- -
a = [1, 2, 3, 4, 5] -
print(random.choices(a, weights=[0, 0, 0, 0, 1], k=5)) -
# 序列有多长,weights 对应的序列就得多长,每个位置都是一一对应 -
# 像这里,5 的权重是 1,其他是 0 ,所以每次都取 5,因为它的权重最高,其他元素没有权重 -
######## -
[5, 5, 5, 5, 5] -
------------------------ -
a = [1, 2, 3, 4, 5] -
print(random.choices(a, weights=[0, 0, 2, 0, 1], k=5)) -
# 2 的权重更大,所以取到它的概率更高 -
################ -
[3, 3, 5, 3, 5]
- random.shuffle()
语法如下:
random.shuffle(x[, random])
- 将序列 x 随机打乱位置
- 只能是列表[],元组、字符串会报错
示例如下:
-
import random -
# 数字数组 -
a = [1, 2, 3, 4, 5] -
random.shuffle(a) -
print(a) -
# 字母数组 -
b = ["a", "b", "c"] -
random.shuffle(b) -
print(b) -
###### -
[4, 3, 2, 1, 5] -
['b', 'a', 'c']
- random.sample()
语法如下:
random.sample(population, k)
示例如下:
-
import random -
import string -
print(random.sample([1, 2, 3, 4, 5], 3)) -
# 字母数组 -
print(random.sample(["a", "b", "c"], 3)) -
# 字母元组 -
print(random.sample(("a", "b", "c"), 3)) -
# 字符串 -
print(random.sample("abcdef", 3)) -
# string 模块返回的大小写字母字符串 -
print(random.sample(string.ascii_letters, 3)) -
# string 模块返回的数字字符串 -
print(random.sample(string.digits, 3)) -
# string 模块返回的数字字符串+大小写字母字符串 -
print(random.sample(string.digits + string.ascii_uppercase, 3)) -
############ -
[4, 3, 5] -
['b', 'c', 'a'] -
['a', 'b', 'c'] -
['c', 'a', 'f'] -
['l', 't', 'y'] -
['0', '8', '3'] -
['5', '8', 'T']
总结
Python的random模块提供了许多强大的功能,用于生成随机数和随机选择。无论是用于游戏开发、数据分析还是密码生成等领域,都可以发挥重要作用。通过熟练掌握random模块的使用方法,可以增加程序的随机性和灵活性,为开发者带来更多可能性。希望本文对大家理解和使用random模块有所帮助!
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

-
文档获取方式: -
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取