random标准模块

本文详细介绍了Python中的random模块,包括其基本用法,如生成随机浮点数、整数、随机序列操作(如choice(),sample(),shuffle())以及如何设置随机种子。
摘要由CSDN通过智能技术生成

一、概述

        在 Python 中,random 是一个内置模块,用于生成随机数。它提供了各种用于生成随机数的函数,包括伪随机数生成器、随机序列操作等。

1、需要导包

不会自动导入,需要显示的将random模块导入

import random

2、源码分析(以shuffle方法为例)

二、随机数生成器函数

1、random():返回一个范围在 [0.0, 1.0) 之间的随机浮点数。

类型:def random(self) -> float: ...

import random
print(random.random()) #0.629683841585128

2、randint(a, b):返回一个范围在 [a, b] 之间的随机整数。

类型:def randint(self, a: int, b: int) -> int: ...

import random
print(random.randint(1,10)) #5

3、uniform(a, b):返回一个范围在 [a, b] 之间的随机浮点数。

类型:def uniform(self, a: float, b: float) -> float: ...

import random
print(random.uniform(1,10)) #3.4924458384182833

4、randrange(start, stop[, step]):返回指定范围内的随机整数。step 参数表示步长。

类型:def randrange(self, start: int, stop: int | None = ..., step: int = ...) -> int: ...

import random
print(random.randrange(5,20,2)) #11

三、随机序列操作

1、choice(seq):从列表中随机选择一个元素并返回。

源码:

    def choice(self, seq):
        """Choose a random element from a non-empty sequence."""
        try:
            i = self._randbelow(len(seq))
        except ValueError:
            raise IndexError('Cannot choose from an empty sequence') from None
        return seq[i]

用法:

import random
# 从序列中随机选择元素
fruits = ['apple', 'banana', 'cherry']
print(random.choice(fruits)) #banana

2、sample(population, k):从序列中随机选择 k 个独立的元素,返回一个列表。

类型:

def sample(self, population: Sequence[_T], k: int, *, counts: Iterable[int] | None = ...) -> list[_T]: ...
import random

fruits = ['apple', 'banana', 'cherry',3,4,5]
# 从序列中随机选择多个元素
print(random.sample(fruits, 2)) #[3, 'banana']

3、shuffle(x):将序列中的元素随机打乱(就地操作)。

类型:def shuffle(self, x: MutableSequence[Any]) -> None: ...

import random

fruits = ['apple', 'banana', 'cherry',3,4,5]
# 将序列中的元素随机打乱
random.shuffle(fruits)
print(fruits)

四、随机种子设置:

1、seed(a=None, version=2):设置随机数生成器的种子。如果不设置种子,生成的随机数会基于系统时间。

数字不同,种子不同,每一颗种子相当于把随机数给固定了

import random

random.seed(12)
print(random.random()) #0.4745706786885481

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值