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


目录
相关文章
|
3天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
4天前
|
SQL 前端开发 数据可视化
Rodeo支持多种Python库
Rodeo支持多种Python库
12 5
|
2天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
17 3
|
8天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
36 8
|
12天前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【9月更文挑战第9天】随着互联网的发展,网络编程成为现代软件开发的关键部分。Python凭借简洁、易读及强大的特性,在该领域展现出独特魅力。本文介绍了Python标准库中的`urllib`和第三方库`requests`在处理HTTP请求方面的优势。`urllib`虽API底层但功能全面,适用于深入控制HTTP请求;而`requests`则以简洁的API和人性化设计著称,使HTTP请求变得简单高效。两者互补共存,共同推动Python网络编程进入全新纪元,无论初学者还是资深开发者都能从中受益。
30 7
|
17天前
|
Python
python 函数
【9月更文挑战第4天】python 函数
36 5
|
3天前
|
Unix 编译器 C语言
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
10 0
|
17天前
|
数据采集 自然语言处理 数据挖掘
python查询汉字函数
简洁、高效、易懂的代码对于提高开发效率与项目质量至关重要,并且对于维持代码的可读性和可维护性也有着很大帮助。选择正确的工具和方法可以大幅提升处理中文数据的效率。在编写用户定义函数时,明确函数的功能与返回值类型对于函数的复用和调试也同样重要。当涉及到复杂的文本处理或数据分析时,不宜过分依赖单一的工具或方法,而应根据具体需求灵活选择和组合不同的技术手段。
22 0
|
4月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
63 0
|
4月前
|
存储 程序员 Shell
Python 进阶指南(编程轻松进阶):十、编写高效函数
Python 进阶指南(编程轻松进阶):十、编写高效函数
62 0