1. Python随机数函数介绍
Python中提供了丰富的随机数函数,包括:基本随机数函数、时间相关函数、加密函数等等。随机数函数的调用需要先导入random模块,如下所示:
import random
1.1 基本随机数函数
基本随机数函数包括:random()、uniform(a,b)、randint(a,b)、choice(seq)、shuffle(seq)等。其中,random()函数会随机生成一个0到1之间的实数,uniform(a,b)函数会随机生成一个a到b之间的实数。而randint(a,b)函数则会随机生成一个a到b之间的整数。choice(seq)函数可以从序列中随机选取一个元素,而shuffle(seq)函数可以对序列进行随机排序。下面我们将针对每个函数进行详细的介绍。
1.2 时间相关函数
Python中提供了一些与时间相关的随机数函数,如:seed(a=None)、random()、randrange(start,stop,step)、choice(seq)、shuffle(seq)函数等。前面介绍过的random()函数需要使用seed()函数来给随机数生成器设置种子,而randrange(start,stop,step)函数则会返回一个从start到stop-1中以step为步长的一个随机整数。下面将针对每个函数进行详细的介绍。
1.3 加密函数
Python中提供了一些与加密相关的随机数函数,如:SystemRandom()、os.urandom(n)函数等。SystemRandom()函数会返回一个用于加解密的随机数发生器,而os.urandom(n)函数会返回一个包含n个随机字节串的bytes类型对象。下面将针对每个函数进行详细的介绍。
2. 基本随机数函数示例
下面我们将分别演示random()、uniform(a,b)、randint(a,b)、choice(seq)、shuffle(seq)函数的使用。代码如下:
import random
# random()函数
print(random.random())
# uniform(a,b)函数
print(random.uniform(5,10))
# randint(a,b)函数
print(random.randint(1,100))
# choice(seq)函数
print(random.choice([1,2,3,4,5]))
# shuffle(seq)函数
lst = [1,2,3,4,5]
random.shuffle(lst)
print(lst)
运行结果如下所示:
0.9288623922628034
7.104360000461491
93
1
[5, 3, 1, 2, 4]
3. 时间相关函数示例
下面我们将分别演示seed(a=None)、random()、randrange(start,stop,step)、choice(seq)、shuffle(seq)函数的使用。代码如下:
import random
# seed(a)函数
random.seed(10)
print(random.random())
# random()函数
random.seed(20)
print(random.random())
# randrange(start,stop,step)函数
print(random.randrange(0, 10, 2))
# choice(seq)函数
print(random.choice('abcdefg'))
# shuffle(seq)函数
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
random.shuffle(lst)
print(lst)
运行结果如下所示:
0.5714025946899135
0.9056396761745207
2
d
['e', 'g', 'a', 'd', 'c', 'b', 'f']
4. 加密函数示例
下面我们将分别演示使用SystemRandom()、os.urandom(n)函数生成随机数。代码如下:
import random
import os
# SystemRandom()函数
sr = random.SystemRandom()
print(sr.random())
# os.urandom(n)函数
print(os.urandom(10))
对于os.urandom(n)函数来说,由于生成的是bytes类型对象,所以无法直接输出,我们可以用encode()函数将其转换为字符串类型。或者使用hex()函数将其转换为16进制字符串类型。代码如下:
import random
import os
# os.urandom(n)函数
print(os.urandom(10).hex())
运行结果如下所示:
0.951369815385253
b'\xf37@AH\x9c\x00\xbdID'
f0374048419c00bd4944
5. 总结
本文主要介绍了Python中常用的随机数函数,包括基本随机数函数、时间相关函数、加密函数等等。通过对每个函数的详细介绍和实际演示,希望读者能够对Python中的随机数函数有更深入的认识和理解。另外,需要注意的是,在进行生成随机数的时候可以通过设置参数seed来调节随机数发生器的状态,从而影响生成的随机数序列。如果不设置seed参数,则默认使用系统时间作为种子,使得每次运行程序生成的随机数序列都不同。如果需要多次生成相同的随机数序列,可以设置一个固定的种子。