Python中的随机数不是真的随机数

Python中的随机数不是真的随机数


计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可预见的,并不是真的随机。

Python中生成随机数需要导入模块random。

import random

random模块常用的几个函数

1、random()方法

#随机生成[0,1)之间的浮点数
>>> import random
>>> random.random()
0.842087374592028

2、random.uniform(a, b)

#获取指定范围内随机浮点数

#两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a >>> random.uniform(1,10)
3.563210711167122
>>> random.uniform(10,1)
2.9816474779151774

3、random.randint(a, b)

#生成指定范围的随机整数
#其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
>>> random.randint(1,10)
3
>>> random.randint(10,1)
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
random.randint(10,1)
File "D:\Python37\lib\random.py", line 222, in randint
return self.randrange(a, b+1)
File "D:\Python37\lib\random.py", line 200, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (10,2, -8)
/<module>/<pyshell>

4、random.randrange([start],stop[,step])

#获取指定范围内、按指定基数递增的随机的整数。
#start -- 指定范围内的开始值,包含在范围内。
#stop -- 指定范围内的结束值,不包含在范围内。
#step -- 指定递增基数,默认是1。
>>> random.randrange(1,100,3)
58
>>> random.randrange(1,100)
44
>>> random.randrange(100)
77

5、random.choice(sequence)

#从序列中随机获取一个元素,参数sequence表示一个有序类型。 

>>> random.choice('abcdefghijk')
'k'
>>> random.choice(['Python','Java','C++','Ruby','JSP'])
'Java'
>>> colors = ['red','yellow','blue','white','black']
>>> random.choice(colors)
'blue'

6、random.shuffle(x[,random])

#将一个可变序列中的元素打乱
>>> items = [1,2,3,4,5,6,7]
>>> random.shuffle(items)
>>> items
[6, 3, 5, 1, 4, 7, 2]
>>> s = ['Python','is','very','simple','!']
>>> random.shuffle(s)
>>> s
['simple', 'is', 'Python', '!', 'very']
>>> colors = ['red','yellow','bule','white','black']
>>> random.shuffle(colors)
>>> colors
['bule', 'white', 'black', 'yellow', 'red']

7、random.sample(sequence,k)

#从指定的序列中随机获取指定长度的片段,原序列不变。
>>> random.sample([1,2,3,4,5,6,7],3)
[1, 2, 6]
>>> colors = ['red','yellow','bule','white','black']
>>> random.sample(colors,2)
['black', 'white']
>>> random.sample(colors,2)
['yellow', 'bule']

以上是对random模块的一些总结,欢迎大家指正。^_^


分享到:


相關文章: