捋一捋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


目录
相关文章
|
16天前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
19天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
51 0
|
12天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
49 4
|
12天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
25 2
|
18天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
38 7
|
18天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
24 3
|
21天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
46 5
|
20天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
11天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
18天前
|
文字识别 自然语言处理 API
Python中的文字识别利器:pytesseract库
`pytesseract` 是一个基于 Google Tesseract-OCR 引擎的 Python 库,能够从图像中提取文字,支持多种语言,易于使用且兼容性强。本文介绍了 `pytesseract` 的安装、基本功能、高级特性和实际应用场景,帮助读者快速掌握 OCR 技术。
37 0