Python之random模块详解

python的random模块

random模块是python中一个生成随机数的模块。

random不是python解释器内置的模块。

导入random模块的方法是:

import random

如果只使用random模块中的单个方法的话,也可以使用

from random import method_name

例如:

我只想生成一个10以内的随机的整数,不需要random模块的别的方法的时候,也可以使用以下命令

from random import randint
random.randint(0,10)

查看random模块的内置方法可以使用以下命令:

dir(random)

其中常用的方法有下面几个:

choice

#从一个非空列表中随机选择一个元素
>Choose a random element from a non-empty sequence.
>>> random.choice([1,3,5,7])
1
>>> random.choice([1,3,5,7])
3

randint

#从a和b(包括b)的范围内随机生成一个整数
>Return random integer in range [a, b], including both end points.
>>> random.randint(0,9)
8
>>> random.randint(0,9)
0
>>> random.randint(0,9)
4
>>> random.randint(0,9)
3

random

#生成一个0(包括0)到1内的浮点数
>random() -> x in the interval [0, 1).
>>> random.random()
0.3898009217264272
>>> random.random()
0.897328889551127
>>> random.random()
0.9899842422616898

randrange

#在指定范围内随机生成一个整数
> Choose a random item from range(start, stop[, step]).
This fixes the problem with randint() which includes the
endpoint; in Python this is usually not what you want.
>>> random.randrange(100,200)
156
>>> random.randrange(100,200)
133
>>> random.randrange(10,20)
11
>>> random.randrange(10,20)
15

sample

#从一个列表或集合中随机选择多个元素
>Chooses k unique random elements from a population sequence or set.
>>> random.sample([23,[1,2,3],"aa","yy"],2)
['aa', 23]
>>> random.sample([23,[1,2,3],"aa","yy"],3)
['aa', [1, 2, 3], 23]

shuffle

#把一个列表内元素的顺序打乱,列表的内存地址不变
>Shuffle list x in place, and return None.
>>> l1=[1,"a",3,5,"b","c"]
>>> id(l1)
140436582171208
>>> random.shuffle(l1)
>>> print(l1)
[1, 'b', 'a', 'c', 3, 5]
>>> id(l1)
140436582171208

uniform

    #在指定范围内随机生成一个浮点数
>Get a random number in the range [a, b) or [a, b] depending on rounding.
>>> random.uniform(12,33)
27.02416276339153
>>> random.uniform(12,33)
13.832414985007832
>>> random.uniform(12,33)
12.827493699496461

现在想生成一个5位包含大小写和数字的随机验证码,代码如下:

import random
def random_code():random_str = ""for i in range(5):#随机选择一个整数num=random.randint(0,9)#生成一个大写字母upper=chr(random.randint(65,90))#生成一个小写字母lower=chr(random.randint(97,122))#每次从大小写字母中随机选择一位res=random.choice([str(num),upper,lower])random_str+=resreturn random_str
print(random_code())

运行5次这个程序,生成的验证码如下:

KwlTN
t1Pag
294l6
t1Pag
294l6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝牙协议栈学习笔记

蓝牙协议栈学习笔记 蓝牙简介 蓝牙工作在全球通用的 2.4GHz ISM(即工业、科学、医学)频段,使用 IEEE802.11 协议 蓝牙 4.0 是迄今为止第一个蓝牙综合协议规范,将三种规格集成在一起。其中最重要的变化就是 BLE(Blue…

【数学建模】《实战数学建模:例题与讲解》第十三讲-相关分析(含Matlab代码)

【数学建模】《实战数学建模:例题与讲解》第十三讲-相关分析(含Matlab代码) 基本概念典型相关分析综合评价模型对应分析因子分析聚类分析 习题10.41. 题目要求2.解题过程3.程序 习题10.51. 题目要求2.解题过程3.程序 习题10.6(1&a…

用Excel绘制柱形图

在需要将数据用柱状图表示的时候,可以用Excel进行绘制。不单绘制柱形图,其他数据图也可以用Excel绘制。 接下来用绘制一个销售表的示例演示。 1.将数据输入Excel 数学书 语文书 英语书 一月 80 94 77 二月 95 86 84 三月 130 93 79 四月 …

实用干货:再见ElementPlus,我有更好的了

大家好,我是大澈! 本文约1200字,整篇阅读大约需要3分钟。 感谢关注微信公众号:“程序员大澈”,免费领取"面试大礼包"一份,然后免费加入问答群,从此让解决问题的你不再孤单&#xff…

任务调度系统就该这么设计(万能通用),稳的一批!

今天来扒一扒轻量级的分布式任务调度平台Xxl-Job背后的架构原理 核心概念 这里还是老样子,为了保证文章的完整性和连贯性,方便那些没有使用过的小伙伴更加容易接受文章的内容,快速讲一讲Xxl-Job中的概念和使用 如果你已经使用过了&#xf…

在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导你快速理解这个调用的过程。 步骤 1. 创建一个CSharp…

Java 8特性:Lambda表达式、函数式接口与Stream API的深度探索

一、引言 随着编程范式的不断演变,Java语言也在不断地发展和创新。Java 8的发布,为开发者们带来了诸多全新的特性,其中包括Lambda表达式、函数式接口以及Stream API。这些特性使得Java语言的编程更加简洁、优雅,同时也提高了代码…

mybatis多表映射-对多关联

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

docker部署go gin框架 Windows环境

目录 文章目的是什么 环境介绍 Windows 环境下 docker 部署 go gin 详细步骤 运行容器时因为挂载文件可能会出现的问题 直接部署gin(跳过运行容器时因为挂载文件可能会出现的问题) 文章目的是什么 假设我们学习了 go 语言,在 Windows(本…

6.rk3588获取摄像头和激光雷达数据(用线程根据时间同步)

文件夹结构如下: 如果没有特殊说明,我们将py文件写在该路径里面。 保存数据的路径如下: ---img_lidar_save ---2023-12-13(根据日期自动生成当天保存数据的文件夹) ---camera_data(相机数据文件夹) ---image(保存相加…

[蓝桥杯刷题]合并区间、最长不连续子序列、最长不重复数组长度

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录: 成功的关键在于对目标的持久追求。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 数据库 文章目录 前言合并区间问题📕现实应用大致思路代码实现代码讲解 最长不连续子序列&a…

jvisualvm手动安装VisualGC插件

前言 笔者近期排查问题需要查看GC的情况,于是用到了jvisualvm这个工具,查阅网上资料发现它有一个名为VisualGC的插件非常好用,于是笔者以此文记录一下VisualGC插件的安装步骤。 安装步骤 下载插件 首先我们要到官网 https://visualvm.gi…

未势能源受邀参加中国氢能100人论坛并发表演讲

12月12日-14日,“2023氢能嘉年华暨中国氢能100人论坛年会”在苏州举办,行业内专家学者、氢能头部企业代表等齐聚现场,聚焦氢能在化工、钢铁、交通等领域发展,共同探讨我国氢能产业初期前进之路。 未势能源液氢总工程师黄欢明受邀…

DevOps搭建(六)-安装Maven详细步骤

1、官网下载 下载地址: Maven – Download Apache Maven 2、上传压缩包到服务器 把下载好的压缩包上传到服务器上。 3、解压压缩包 解压压缩包到安装目录/usr/local/ tar -zxvf apache-maven-3.9.3-bin.tar.gz -C /usr/local/ 切换到/usr/local目录下ls命令看…

基于FPGA的视频接口之高速IO(光纤)

简介 对于高速IO口配置光纤,现在目前大部分开发板都有配置,且也有说明,在此根据自己的工作经验以及对于各开发板的说明归纳 通过高速IO接口,以及硬件配置,可以实现对于光纤的收发功能,由于GTX的速率在500Mbs到10Gbps之间,但通道高速io可配置光纤10G硬件,物理通完成,则…

SpringIOC之Jsr330ScopeMetadataResolver

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

科东软件Intewell操作系统:以“鸿”鹄之志,创未来之“道”

打造自主可控的新型工业操作系统是我国加速新型工业化进程,在新一轮科技革命中实现“换道超车”的重要契机。科东软件期待凭借鸿道Intewell新型工业操作系统的创新与应用,打造100%自主可控的工业网络和工业控制底层技术,为我国新型工业化贡献…

顶级Web应用程序测试工具列表

今天主要列举Web应用程序的工具。 今天的列表仅仅提供索引功能,具体要使用的同学,可以自行搜索哦。 通过web应用程序测试,在web应用程序公开发布之前,会发现网站功能、安全性、可访问性、可用性、兼容性和性能等问题。 Web应用程…

模板方法模式(行为型)

目录 一、前言 二、模板模式 三、带钩子的模板模式 四、总结 一、前言 模板方法模式是一种行为型设计模式,它定义了一个操作中的算法框架,将一些步骤延迟到子类中实现。这种模式是基于“开闭原则”的设计思想,即对扩展开放,对…

JAVA:乘除窗体的实现

目录 题目要求: 窗口的实现: try 和 catch 的用法: 思路大意: 关键代码的实现: 题目要求: 使用 try 和catch 方法完成乘法除法的异常处理和窗体的实现,如下图所示: 窗口的实…