前言
在实际工作中,我们难免会用到随机操作。例如年会抽奖,随机选择中奖用户;爬虫时,随机选择 user-agent
等。今天我们就一起来看看那些 Python
中的随机操作。
随机数
randint
以下代码实现生成随机整数(正负)。
import random
res1 = random.randint(-100,100)
print(res1)
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
-11
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
63
randrange
以下代码实现生成随机数(指定步长)。
import random
res2 = random.randrange(-100, 100,2)
print(res2)
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
-40
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
56
以上,你会发现生成的随机数都是在
-100
到100
之间的步长为 2 的数,即不会出现奇数。
random
random
会生成 0
到 1
之间的随机数,类型是 float
。
import random
res3 = random.random()
print(res3)
print(type(res3))
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
0.49365074829039834
<class 'float'>
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
0.9803235033128287
<class 'float'>
uniform
uniform
会返回范围内的一个随机实数,类型为 float
。
import random
res4 = random.uniform(-1.2,9.8)
print(res4)
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
5.61996222607611
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
-0.8188126541465378
随机选择
choice
choice
可以实现在待选对象中,随机选择一个元素。
import random
lst = ['xian','beijing','shanghai']
res5 = random.choice(lst)
print(res5)
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
shanghai
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
xian
其中,
choice
的参数类型可以为列表,元组、字符串等。
随机排序
shuffle
sequence 可以实现将一个列表,字符串进行随机排序。
import random
lst = ['xian','beijing','shanghai']
random.shuffle(lst)
print(lst)
执行结果:
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
['beijing', 'xian', 'shanghai']
PS C:\Users\xxx\Desktop\study> & D:/Python37/python.exe test.py
['shanghai', 'beijing', 'xian']
注:
shuffle
方法没有返回值,直接作用在原对象上。
写在最后
关于 seed
方法,它实际上是 random.Random
类实例化时的构造方法,作用是在每个选择前重新播种
,以获取可重复的随机数流。
评论区