Python 中的随机数生成

Python 通过 random 模块定义了一组函数,专门用于生成或操作随机数。

random 模块中的函数依赖于一个伪随机数生成器函数 random(),它会生成一个 0.0 到 1.0 之间的随机浮点数。这类特定类型的函数在很多游戏、彩票或任何需要生成随机数的应用程序中都有广泛的应用。

让我们来看一个使用 random() 函数在 Python 中生成随机数字的例子。

import random
num = random.random()
print(num)

输出:

0.30078080420602904

在 Python 中生成随机数的不同方式

使用 Python random 模块中的函数,有多种方法可以生成随机数。让我们来看看几种不同的方式。

使用 choice() 生成随机数

Python 中的 random.choice()是一个内置函数,它可以从列表元组字符串中返回一个随机项。

# 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 = "striver"
print(random.choice(string))

输出:

5
t

使用 randrange() 生成随机数

random 模块提供了一个函数,可以从指定范围内生成 Python 随机数,并且还允许包含步长,这个函数叫做 randrange()

# importing "random" for random operations
import random

# using choice() to generate a random number from a
# given list of numbers.
print("A random number from list is : ", end="")
print(random.choice([1, 4, 8, 10, 3]))

# using randrange() to generate in range from 20
# to 50. The last parameter 3 is step size to skip
# three numbers when selecting.
print("A random number from range is : ", end="")
print(random.randrange(20, 50, 3))

输出:

A random number from list is : 4
A random number from range is : 41

使用 seed() 生成随机数

Python 的 random.seed()函数用于保存随机函数的状态,以便在相同机器或不同机器上多次执行代码时(针对特定的种子值)能生成相同的随机数。种子值是生成器生成的上一个数值。如果是第一次执行且没有上一个值,它会使用当前系统时间。

# importing "random" for random operations
import random

# using random() to generate a random number
# between 0 and 1
print("A random number between 0 and 1 is : ", end="")
print(random.random())

# using seed() to seed a random number
random.seed(5)

# printing mapped random number
print("The mapped random number with 5 is : ", end="")
print(random.random())

# using seed() to seed different random number
random.seed(7)

# printing mapped random number
print("The mapped random number with 7 is : ", end="")
print(random.random())

# using seed() to seed to 5 again
random.seed(5)

# printing mapped random number
print("The mapped random number with 5 is : ", end="")
print(random.random())

# using seed() to seed to 7 again
random.seed(7)

# printing mapped random number
print("The mapped random number with 7 is : ", end="")
print(random.random())

输出:

A random number between 0 and 1 is : 0.510721762520941
The mapped random number with 5 is : 0.6229016948897019
The mapped random number with 7 is : 0.32383276483316237
The mapped random number with 5 is : 0.6229016948897019
The mapped random number with 7 is : 0.32383276483316237

使用 shuffle() 生成随机数(打乱序列)

shuffle()函数用于打乱序列(列表)的顺序。打乱意味着改变序列中元素的位置。在这里,打乱操作是直接在原列表上进行的(In place)。

# import the random module
import random

# declare a list
sample_list = [‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘]

print("Original list : ")
print(sample_list)

# first shuffle
random.shuffle(sample_list)
print("
After the first shuffle : ")
print(sample_list)

# second shuffle
random.shuffle(sample_list)
print("
After the second shuffle : ")
print(sample_list)

输出

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49053.html
点赞
0.00 平均评分 (0% 分数) - 0