📜  Python中的随机数

📅  最后修改于: 2020-04-09 15:16:03             🧑  作者: Mango

Python定义了一组用于生成或操纵随机数的函数。这种特殊类型的功能用于许多游戏、彩票或需要随机数生成的任何应用程序中。
随机数操作:
1. choice():此函数用于从容器生成1个随机数
2. randrange(beg,end,step):此函数还用于生成随机数,但要在其参数指定的范围内此函数有3个参数,开始编号(包含在生成中),最后一个编号(排除在生成中)和步长(在选择时跳过范围内的数字)。

# Python代码演示choice()和randrange()的工作
# 导入“随机"以进行随机操作
import random
# 使用choice()从给定的个数字列表中生成一个随机数.
print ("列表中的随机数是 : ",end="")
print (random.choice([1, 4, 8, 10, 3]))
# 使用randrange()生成的范围是20到50。最后一个参数3是步长,选择时跳过三个数字。
print ("范围内的随机数是 : ",end="")
print (random.randrange(20, 50, 3))

输出:

列表中的随机数是 : 4
范围内的随机数是 : 41

3. random():此数字用于生成小于1且大于或等于0float随机数。
4. seed():此函数将特定的随机数与提到的seed参数映射。在种子值之后调用的所有随机数都将返回映射的数。

# Python代码演示random()和seed()的工作
# 导入“随机"以进行随机操作
import random
# 使用random()生成0到1之间的随机数
print ("0到1之间的随机数是 : ", end="")
print (random.random())
# 使用seed()播种随机数
random.seed(5)
# 打印映射的随机数
print ("具有5的映射随机数是 : ", end="")
print (random.random())
# 使用seed()播种不同的随机数
random.seed(7)
# 打印映射的随机数
print ("具有7的映射随机数是 : ", end="")
print (random.random())
# 使用seed()再次播种到5
random.seed(5)
# 打印映射的随机数
print ("具有5的映射随机数是 : ",end="")
print (random.random())
# 使用seed()再次播种到7
random.seed(7)
# 打印映射的随机数
print ("映射的随机数为7为 : ",end="")
print (random.random())

输出:

0到1之间的随机数是 : 0.510721762520941
具有5的映射随机数是 : 0.6229016948897019
具有7的映射随机数是: 0.32383276483316237
具有5的映射随机数是 : 0.6229016948897019
映射的随机数为7为 : 0.32383276483316237

5. shuffle():此函数用于随机播放整个列表以随机排列它们。
6. Uniform(a,b):此函数用于在其自变量中提到的数字之间生成一个浮点随机数它有两个参数,下限(包括在生成中)和上限(不包括在生成中)。

# Python代码演示#shuffle()和uniform()的工作
# 导入“随机"以进行随机操作
import random
# 初始list
li = [1, 4, 5, 10, 2]

print ("shuffle之前的list : ", end="")
for i in range(0, len(li)):
    print (li[i], end=" ")
print("\r")
# 使用shuffle()随机播放列表
random.shuffle(li)
# shuffle之后的list
print ("shuffle之后的list : ", end="")
for i in range(0, len(li)):
    print (li[i], end=" ")
print("\r")
# 使用uniform()生成范围内的随机浮点数
# 打印5到10之间的数字
print ("5到10之间的随机浮点数是 : ",end="")
print (random.uniform(5,10))

输出:

shuffle之前的list : 1 4 5 10 2
shuffle之后的list : 2 1 4 5 10
5到10之间的随机浮点数是 : 5.183697823553464