欢迎访问宙启技术站
智能推送

随机生成数:Pythonrandom模块

发布时间:2023-06-26 02:08:08

Python语言中的random模块是一个用于生成随机数的标准库模块。使用该模块可以方便地生成随机整数、浮点数、序列以及性能更高的随机生成器等,以满足多种需求。本文将介绍Pythonrandom模块的基本结构、用法及常见功能,对于Python编程者来说,这是一篇必读的教程。

## 1. random模块的基本结构

Pythonrandom模块是一个标准库模块,它提供了若干个可调用对象(函数或类),这些可调用对象可以用来随机生成数。在使用random模块之前,需要先导入该模块。导入random模块的语句如下:

import random

导入random模块之后,就可以通过random模块访问其中的各个可调用对象。

## 2. random模块可调用对象的用法

### 2.1 随机整数

Pythonrandom模块提供了randint(a, b)函数,该函数可以生成一个范围在a和b之间(包括a和b)的随机整数。例如,以下代码生成一个范围在1和10之间的随机整数:

import random

x = random.randint(1, 10)
print(x)

### 2.2 随机浮点数

Pythonrandom模块提供了uniform(a, b)函数,该函数可以生成一个范围在a和b之间(包括a和b)的随机浮点数。例如,以下代码生成一个范围在0和1之间的随机浮点数:

import random

x = random.uniform(0, 1)
print(x)

### 2.3 随机序列

Pythonrandom模块提供了shuffle(seq)函数,该函数可以将序列(列表、元组等)中的元素随机排序。例如,以下代码生成一个含有10个元素的顺序列表,然后将其随机排序:

import random

x = [i for i in range(1, 11)]
random.shuffle(x)
print(x)

值得注意的是,shuffle(seq)函数是直接修改了原序列,而并非返回一个新的序列。

除了shuffle(seq)函数之外,Pythonrandom模块还提供了choice(seq)函数,该函数可以从序列中随机选择一个元素并返回其值。

import random

x = [i for i in range(1, 11)]
y = random.choice(x)
print(y)

另外,sample(seq, n)函数可以从序列中随机选择n个不重复的元素,并返回一个列表。例如,以下代码从1~10中随机选择4个不重复的整数:

import random

x = [i for i in range(1, 11)]
y = random.sample(x, 4)
print(y)

### 2.4 随机种子

Pythonrandom模块提供了seed(a=None)函数,该函数可以用于设置生成随机数时所用的随机种子。若给定相同的随机种子,则生成的随机数序列也是相同的;否则,则每次都会生成不同的随机数序列。例如,以下代码先用seed(0)设置随机种子为0,然后生成两个随机数,再用seed(0)设置随机种子为0,再次生成两个随机数,输出两次生成的随机数序列:

import random

random.seed(0)
print(random.random())
print(random.random())

random.seed(0)
print(random.random())
print(random.random())

### 2.5 随机生成器

Pythonrandom模块提供了Randome类,该类可以定义一个随机数生成器对象。该对象可以自行设定种子,生成多个随机数。例如,以下代码定义了一个随机数生成器对象,然后生成两个随机数:

import random

myRand = random.Random(0)
print(myRand.random())
print(myRand.random())

## 3. 总结

Pythonrandom模块是一个用于生成随机数的标准库模块。通过使用该模块,我们可以方便地生成随机整数、浮点数、序列以及性能更高的随机生成器等。该模块提供了多个可调用对象,用法简单且功能丰富。熟练使用该模块对于Python编程者来说,是一项必备技能。