捋一捋Python中的random库之随机数函数

简介: 正式的Python专栏第20篇,同学站住,别错过这个从0开始的文章!

前两篇我们讲讲那些常用的数学处理函数, 我们接着展示一下随机数相关的函数!


随机数

做程序,有时候我们需要随机数。 比如在抽奖或者随机抽样进行数据分析的时候,随机函数就很重要了。


相应的python提供了内置的random库,它给了开发者丰富的选择


这里我们可以分为下面几个类:


随机生成毫无规律的随机数(比如函数random)

给定范围或者值域内选取数值来作为随机数(比如函数choice, uniform)

使用一个随机算法来生成随机数(比如seed与random结合的随机数生成)

代码展示

学委准备了下面4个循环,展示了上述几种随机数生成的过程。


可以直接复制保存为randnumber.py 来运行:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/26 10:29 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : randnumber.py
# @Project : hello
from random import choice, randrange, seed, random, uniform
for i in range(5):
    print("round [%s] get a choice : %s" % (i, choice([1, 2, 3, 4, 5])))  # 给定参数list内选择随机一个
print("*" * 16)
for i in range(5):
    print(
        "round [%s] randrange value %s" % (i, randrange(1, 10, 3)))  # 生成随机范围内数字,这里为1到10内取数字,步长为3,也就是类似与choice([1,4,7])
print("*" * 16)
for i in range(2):
    print("round [%s] seed value %s" % (i, seed(i)))  # seed 函数不产生任何结果,seed函数影响随机函数
    print("rand value %s " % random())
    print("rand value %s " % random())
    print("round [%s] seed value %s" % (i, seed(f"hello{i}")))  # seed 函数不产生任何结果,seed函数影响随机函数
    print("next rand value %s " % random())
print("*" * 16)
for i in range(2):
    print("round [%s] uniform %s" % (i, uniform(2, 10)))  # 生成2 到10内的随机数(浮点数)

下面是运行效果:

image.png

指定范围内一个一个依次取值,还有其他选择吗?

这个过程类似洗牌,我们除了可以用choice函数来做到。也可以使用shuffle函数。

它的参数也是一个list类型。非常简单,我们看看代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/26 10:29 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : randnumber2.py
# @Project : hello
from random import shuffle
print("*" * 16)
for i in range(2):
    list = [1, 2, 3, 4, 5]
    print("round [%s] shuffle value %s" % (i, shuffle(list)))  # 随机洗牌函数,像我们打扑克,打完一句进行洗牌
    print("list = %s" % list)

下面是运行效果,我们进行了两次洗牌,每次结果不一样(因为出现一样的概率非常低)。

image.png


目录
相关文章
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
189 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
292 1
|
2月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
168 0
|
3月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
275 101
|
3月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
223 99
|
3月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
195 98
|
2月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
249 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
2月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
314 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
Python
Python 随机数模块random最常用的8个方法
Python 随机数模块random最常用的8个方法
434 0

推荐镜像

更多