当前位置:   article > 正文

Python的random(随机数)模块的使用_python的random怎么用

python的random怎么用

Python的random模块提供了各种用于生成随机数的函数。这个模块在需要随机选择元素、打乱序列、模拟概率分布等场景时非常有用。下面我将详细介绍random模块的一些主要功能、用法和常见用法,并给出相应的示例代码。

主要功能

  1. 基本随机数生成:生成指定范围内的随机整数、随机浮点数等。
  2. 随机选择:从序列中随机选择一个或多个元素。
  3. 随机打乱:随机打乱序列中的元素顺序。
  4. 随机变量:模拟常见的随机变量分布,如正态分布、指数分布等。

用法

以下是一些常用的函数及其用法:

  • random():生成一个[0.0, 1.0)之间的随机浮点数。
  • randint(a, b):生成一个[a, b]之间的随机整数。
  • randrange([start,] stop[, step]):生成一个[start, stop)之间以step为步长的随机整数。
  • choice(seq):从非空序列seq中随机选择一个元素。
  • shuffle(list):将list中的元素随机打乱。
  • sample(population, k):从population中随机选择k个不重复的元素。
  • uniform(a, b):生成一个[a, b]之间的随机浮点数。
  • normalvariate(mu, sigma):生成一个符合正态分布的随机数,mu是均值,sigma是标准差。

示例代码

生成随机整数和浮点数

import random

# 生成0到10之间的随机整数(包括0和10)
print(random.randint(0, 10))

# 生成1到10之间(不包括10)的随机整数
print(random.randrange(1, 10))

# 生成0到1之间的随机浮点数(不包括1)
print(random.random())

# 生成1到3之间的随机浮点数
print(random.uniform(1, 3))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

运行结果:

在这里插入图片描述

从序列中随机选择元素

# 从列表中随机选择一个元素
my_list = [1, 2, 3, 4, 5]
print(random.choice(my_list))

# 从列表中随机选择3个不重复的元素
print(random.sample(my_list, 3))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果:

在这里插入图片描述

随机打乱序列

# 打乱列表中的元素顺序
random.shuffle(my_list)
print(my_list)
  • 1
  • 2
  • 3

运行结果:

在这里插入图片描述

模拟随机变量分布

正态分布

# 生成一个符合正态分布的随机数,均值为0,标准差为1
print(random.normalvariate(0, 1))
  • 1
  • 2

运行结果:

在这里插入图片描述

指数分布

虽然random模块没有直接提供指数分布的函数,但你可以使用expovariate函数从randomexpovariate模块中导入:

from random import expovariate

# 生成一个符合指数分布的随机数,λ(lambda)是分布率参数(平均到达率是λ的倒数)
print(expovariate(1.0))  # λ=1.0
  • 1
  • 2
  • 3
  • 4

但请注意,expovariate是直接在random模块中定义的,不需要额外导入。

其他分布

对于其他更复杂的分布,你可能需要使用numpy库,它提供了更多的统计函数和随机变量生成器。

使用random.seed()设置随机种子

设置随机种子可以确保每次运行代码时生成的随机数序列是相同的,这在需要可重复实验的情况下很有用。

import random

# 设置随机种子
random.seed(1)

# 现在,每次使用相同的种子调用random函数,都会得到相同的结果
print(random.randint(0, 10))  
# 假设输出为5(实际输出可能因版本而异)
print(random.randint(0, 10))  
# 假设输出为某个特定数字(与上次不同,但因为是同一种子,所以可重复)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行结果:

在这里插入图片描述

使用random模块进行简单的随机密码生成

import random
import string

def generate_password(length=10):
    # 选择字母和数字的集合
    characters = string.ascii_letters + string.digits
    # 使用random.choices函数(注意不是choice,它允许重复)
    # 并指定k=length以生成指定长度的密码
    return ''.join(random.choices(characters, k=length))

print(generate_password(15))  # 生成一个15位的随机密码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

运行结果:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/713864
推荐阅读
相关标签
  

闽ICP备14008679号