Python Random模块
Python随机模块是Python的一个内置模块,用于生成随机数。这些是伪随机数,意味着这些不是真正的随机数。这个模块可以用来执行随机操作,如生成随机数,为一个列表或字符串打印随机值等。
例子:从一个列表中打印一个随机值
# import random
import random
# prints a random value from the list
list1 = [1, 2, 3, 4, 5, 6]
print(random.choice(list1))
输出:
2
如上所述,随机模块创建伪随机数。随机数取决于播种值。例如,如果播种值是5,那么下面程序的输出将总是相同的。
例子:用播种值创建随机数
import random
random.seed(5)
print(random.random())
print(random.random())
输出:
0.6229016948897019
0.7417869892607294
上述代码的输出将始终是相同的。因此,不能用它来加密。
让我们来讨论这个模块所进行的一些常见操作。
创建随机整数
random.randint()方法用于生成指定范围内的随机整数。
语法:
randint(start, end)
例子:创建随机整数
# Python3 program explaining work
# of randint() function
# import random module
import random
# Generates a random number between
# a given positive range
r1 = random.randint(5, 15)
print("Random number between 5 and 15 is % s" % (r1))
# Generates a random number between
# two given negative range
r2 = random.randint(-10, -2)
print("Random number between -10 and -2 is % d" % (r2))
输出:
Random number between 5 and 15 is 7
Random number between -10 and -2 is -9
创建随机浮点数
random.random()方法用于生成0.0到1之间的随机浮点数。
语法:
random.random()
例子:
# Python3 program to demonstrate
# the use of random() function .
# import random
from random import random
# Prints random item
print(random())
输出:
0.3717933555623072
选择随机元素
random.choice()函数用于从一个列表、元组或字符串中返回一个随机项目。
语法:
random.choice(sequence)
例子:从列表、字符串和元组中选择随机元素
# Python3 program to demonstrate the use of
# choice() method
# import random
import random
# prints a random value from the list
list1 = [1, 2, 3, 4, 5, 6]
print(random.choice(list1))
# prints a random item from the string
string = "geeks"
print(random.choice(string))
# prints a random item from the tuple
tuple1 = (1, 2, 3, 4, 5)
print(random.choice(tuple1))
输出:
2
k
5
洗牌列表
random.shuffle()方法是用来洗牌一个序列(列表)的。洗牌意味着改变序列中各元素的位置。这里,洗牌操作是就地进行的。
语法:
random.shuffle(sequence, function)
例子:洗牌列表
# import the random module
import random
# declare a list
sample_list = [1, 2, 3, 4, 5]
print("Original list : ")
print(sample_list)
# first shuffle
random.shuffle(sample_list)
print("\nAfter the first shuffle : ")
print(sample_list)
# second shuffle
random.shuffle(sample_list)
print("\nAfter the second shuffle : ")
print(sample_list)
输出:
Original list :
[1, 2, 3, 4, 5]
After the first shuffle :
[4, 3, 5, 2, 1]
After the second shuffle :
[1, 3, 4, 5, 2]
Random 模块中的所有功能列表
Function Name | Description |
---|---|
seed() | 初始化随机数发生器 |
getstate() | 返回一个包含随机数发生器当前内部状态的对象 |
setstate() | 用于将随机数发生器的状态恢复到指定的状态。 |
getrandbits() | 返回一个具有指定位数的整数 |
randrange() | 返回一个范围内的随机数 |
randint() | 返回一个范围内的随机整数 |
choice() | 从一个列表、元组或字符串中返回一个随机项目 |
choices() | 从列表中返回多个随机元素并进行替换 |
sample() | 返回一个从序列中选择的特定长度的项目列表。 |
random() | 生成随机浮动数 |
uniform() | 返回两个数字之间的随机浮动数,两个数字都包括在内 |
triangular() | 返回一个范围内的随机浮点数,偏向一个极端。 |
betavariate() | 返回一个具有β分布的随机浮点数 |
expovariate() | 返回一个指数分布的随机浮点数 |
gammavariate() | 返回一个具有伽马分布的随机浮点数 |
gauss() | 返回一个高斯分布的随机浮点数 |
lognormvariate() | 返回一个对数正态分布的随机浮点数 |
normalvariate() | 返回一个正态分布的随机浮点数 |
vonmisesvariate() | 返回一个具有冯-米塞斯分布或循环正态分布的随机浮点数 |
paretovariate() | 返回一个具有帕累托分布的随机浮点数 |
weibullvariate() | 返回一个具有Weibull分布的随机浮点数 |