Python 取随机数

Python 取随机数

Python 取随机数

介绍

在编程中,经常需要使用随机数。随机数是一种在一定范围内没有规律可循的数值。Python 提供了多种方式来生成随机数,本文将详细介绍这些方法。

random 模块

Pythonrandom 模块提供了生成随机数的函数。使用前需要先导入模块:

import random

生成随机整数

random 模块提供了 randint(a, b) 函数来生成指定范围内的随机整数。这个函数返回的随机整数 n 满足 a <= n <= b

下面的示例生成 1 到 10 之间的随机整数:

import random

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

输出结果可能为:

7

生成随机浮点数

random 模块还提供了 random() 函数来生成 0 到 1 之间的随机浮点数。这个函数返回的随机浮点数 x 满足 0 <= x < 1

下面的示例生成 0 到 1 之间的随机浮点数:

import random

num = random.random()
print(num)

输出结果可能为:

0.5730803318224345

生成随机列表元素

random 模块的 choice(seq) 函数可以从序列 seq(如列表或元组)中随机选择一个元素并返回。示例代码如下:

import random

fruits = ['apple', 'banana', 'orange', 'strawberry']
selected_fruit = random.choice(fruits)
print(selected_fruit)

输出结果可能为:

banana

random 模块还提供了 sample(population, k) 函数,可以从给定种群或序列 population 中随机选择 k 个元素作为一个新的列表返回。示例代码如下:

import random

letters = ['a', 'b', 'c', 'd', 'e']
selected_letters = random.sample(letters, 3)
print(selected_letters)

输出结果可能为:

['a', 'c', 'e']

打乱列表顺序

random 模块的 shuffle(x) 函数可以打乱列表 x 的顺序。这个函数没有返回值,直接修改原列表。示例代码如下:

import random

my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)

输出结果可能为:

[3, 2, 4, 1, 5]

生成随机字符串

random 模块还可以用来生成随机字符串。下面的示例生成一个由随机字符组成的字符串:

import random
import string

length = 6
random_string = ''.join(random.choices(string.ascii_uppercase + string.digits, k=length))
print(random_string)

输出结果可能为:

2GK5B9

这个示例中,使用了 random.choices(population, k) 函数来从给定的 population 中随机选取 k 个元素,并将其拼接成字符串。

secrets 模块

Python 3.6 引入了 secrets 模块,用于生成高安全性的随机数。与 random 模块不同,secrets 模块可用于安全地生成密码、验证码等。

首先需要导入模块:

import secrets

生成随机整数

secrets 模块提供了 randbelow(n) 函数来生成小于 n 的随机整数。

下面的示例生成一个小于 10 的随机整数:

import secrets

num = secrets.randbelow(10)
print(num)

输出结果可能为:

3

生成随机字节序列

secrets 模块的 token_bytes(n) 函数可以生成一个包含 n 个随机字节的字节序列。示例代码如下:

import secrets

bytes = secrets.token_bytes(16)
print(bytes)

输出结果可能为:

b'\xd5{\x9dq\x0f\x1cD8\x06[y!$'

生成随机 URL 安全字符串

secrets 模块还提供了 token_urlsafe(n) 函数来生成长度为 n 的 URL 安全的随机字符串。示例代码如下:

import secrets

token = secrets.token_urlsafe(8)
print(token)

输出结果可能为:

-zH3r6cT

使用 secrets 模块生成的随机字符串是适用于密码等敏感数据的高安全性随机字符串。

总结

本文介绍了 Python 中生成随机数的方法。random 模块适用于一般的随机数生成,secrets 模块提供了生成高安全性随机数的功能。

请注意,在某些需要高安全性的场景下,使用 secrets 模块生成的随机数比 random 模块更可靠。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程