软件测试|Python random模块,超乎想象的强大

Python的random模块是一个非常强大的工具,用于生成随机数和随机选择。它提供了许多函数和方法,可以满足各种随机化需求。本文将介绍random模块的基本功能和常见用法,以帮助读者更好地理解和利用这个模块。

返回整数
  1. random.randange()

语法如下:

  1. random.randrange(stop)

  2. random.randrange(start, stop[, step])

参数解析:

  • stop: 末尾数字,不包含(取不到 stop 这个值)
  • start: 起始数字,包含(取得到 start 这个值)
  • step: 步长

示例如下:

  1. import random

  2. for i in range(5):

  3. print(random.randrange(30))

  4. ############

  5. 9

  6. 25

  7. 21

  8. 3

  9. 20

  10. ------------------

  11. import random

  12. for i in range(5):

  13. print(random.randrange(10, 20))

  14. ###########

  15. 14

  16. 12

  17. 11

  18. 14

  19. 13

  20. -------------------

  21. import random

  22. for i in range(5):

  23. print(random.randrange(20, 30, 2))

  24. ############

  25. 24

  26. 28

  27. 22

  28. 22

  29. 24

  1. random.randint()

语法如下:

random.randint(a, b)

语法说明:

  • 该语句相当于random.randint(a, b+1)
  • 返回随机整数 N 满足 a <= N <= b

示例如下:

  1. import random

  2. for i in range(5):

  3. print(random.randint(10,20))

  4. ######

  5. 12

  6. 15

  7. 10

  8. 13

  9. 13

注:该方法可以返回两端的值

返回浮点数
  1. random.random()

语法格式:

random.random()

上述语法将返回一个[0.0,1.0)之间的一个浮点数

使用示例

  1. import random

  2. for i in range(5):

  3. print(random.random())

  4. -----------------

  5. 0.051698653828633145

  6. 0.10619823413246887

  7. 0.33732593583951986

  8. 0.6763699334756532

  9. 0.16816052346812582

  10. import math

  11. import random

  12. for i in range(6):

  13. print(math.ceil(random.random() * 1000))

  14. ---------------------

  15. 67

  16. 38

  17. 612

  18. 639

  19. 454

  20. 870

  1. random.uniform()

语法格式如下:

random.uniform(a, b)

语法说明:

  • 返回一个随机浮点数 N
  • 当 a <= b 时,a <= N <= b
  • 当 b < a 时, b <= N <= a

使用示例

  1. import random

  2. for i in range(5):

  3. print(random.uniform(1, 10))

  4. ###############

  5. 5.457242422186069

  6. 8.633135221688587

  7. 2.9232627928020625

  8. 7.921168676991703

  9. 2.07340428271263

  10. ---------------------

  11. import random

  12. for i in range(5):

  13. print(random.uniform(12, 3))

  14. ####################

  15. 3.1848989873887614

  16. 5.15029109210898

  17. 3.947059333936842

  18. 9.637384540893176

  19. 4.816027706079555

以列表作为参数
  1. random.choice()

语法如下:

random.choice(seq)

语法说明:

  • 从非空序列 seq 返回一个随机元素
  • 如果 seq 为空,会抛出 IndexError

示例如下:

  1. import string

  2. print(random.choice([1, 2, 3, 4, 5]))

  3. # 字母数组

  4. print(random.choice(["a", "b", "c"]))

  5. # 字母元组

  6. print(random.choice(("a", "b", "c")))

  7. # 字符串

  8. print(random.choice("abcdef"))

  9. # string 模块返回的大小写字母字符串

  10. print(random.choice(string.ascii_letters))

  11. # string 模块返回的数字字符串

  12. print(random.choice(string.digits))

  13. # string 模块返回的数字字符串+大小写字母字符串

  14. print(random.choice(string.digits + string.ascii_uppercase))

  15. #############

  16. 3

  17. b

  18. c

  19. d

  20. e

  21. 7

  22. H

  1. random.choices()

语法如下:

random.choices(population, weights=None, *, cum_weights=None, k=1) 

参数说明:

  • populaiton:序列
  • weights:普通权重
  • cum_weights:累加权重
  • k:选择次数

注:weights 和 cum_weights 不能同时传,只能选择一个来传

示例如下:

 
  1. import random

  2. a = [1,2,3,4,5]

  3. print(random.choices(a,k=5))

  4. #########

  5. [4, 3, 5, 3, 5]

  6. ---------

  7. a = [1, 2, 3, 4, 5]

  8. print(random.choices(a, weights=[0, 0, 0, 0, 1], k=5))

  9. # 序列有多长,weights 对应的序列就得多长,每个位置都是一一对应

  10. # 像这里,5 的权重是 1,其他是 0 ,所以每次都取 5,因为它的权重最高,其他元素没有权重

  11. ########

  12. [5, 5, 5, 5, 5]

  13. ------------------------

  14. a = [1, 2, 3, 4, 5]

  15. print(random.choices(a, weights=[0, 0, 2, 0, 1], k=5))

  16. # 2 的权重更大,所以取到它的概率更高

  17. ################

  18. [3, 3, 5, 3, 5]

  1. random.shuffle()

语法如下:

random.shuffle(x[, random])
  • 将序列 x 随机打乱位置
  • 只能是列表[],元组、字符串会报错

示例如下:

  1. import random

  2. # 数字数组

  3. a = [1, 2, 3, 4, 5]

  4. random.shuffle(a)

  5. print(a)

  6. # 字母数组

  7. b = ["a", "b", "c"]

  8. random.shuffle(b)

  9. print(b)

  10. ######

  11. [4, 3, 2, 1, 5]

  12. ['b', 'a', 'c']

  1. random.sample()

语法如下:

random.sample(population, k)

示例如下:

  1. import random

  2. import string

  3. print(random.sample([1, 2, 3, 4, 5], 3))

  4. # 字母数组

  5. print(random.sample(["a", "b", "c"], 3))

  6. # 字母元组

  7. print(random.sample(("a", "b", "c"), 3))

  8. # 字符串

  9. print(random.sample("abcdef", 3))

  10. # string 模块返回的大小写字母字符串

  11. print(random.sample(string.ascii_letters, 3))

  12. # string 模块返回的数字字符串

  13. print(random.sample(string.digits, 3))

  14. # string 模块返回的数字字符串+大小写字母字符串

  15. print(random.sample(string.digits + string.ascii_uppercase, 3))

  16. ############

  17. [4, 3, 5]

  18. ['b', 'c', 'a']

  19. ['a', 'b', 'c']

  20. ['c', 'a', 'f']

  21. ['l', 't', 'y']

  22. ['0', '8', '3']

  23. ['5', '8', 'T']

总结

Python的random模块提供了许多强大的功能,用于生成随机数和随机选择。无论是用于游戏开发、数据分析还是密码生成等领域,都可以发挥重要作用。通过熟练掌握random模块的使用方法,可以增加程序的随机性和灵活性,为开发者带来更多可能性。希望本文对大家理解和使用random模块有所帮助!

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

关于 FastAPI 路径参数,你知道多少?

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

React Developer Tools安装

问题描述 在react开发中&#xff0c;需要插件来帮助我们开发&#xff0c;例如&#xff1a; 方法 &#xff08;可能需要魔法 进去后搜索&#xff1a; 点击下载即可

【Nebula笔记】基础操作

目录 一、预备~ 二、基础操作 (一) 图空间 1. 创建图空间 2. 清空图空间 3. 其他 4. FAQ 执行DROP SPACE语句删除图空间后&#xff0c;为什么磁盘的大小没变化&#xff1f; (二) 点类型 1. 创建Tag 2. 删除Tag 3. 更新Tag 4. 其他 (三) 边类型 1. 创建Edge type…

git如何在某个commitId的状态提交到一个分支

有些时候&#xff0c;我们在使用子仓库&#xff0c;或者其他情况&#xff0c;会有一个状态是当前的git仓库是在一个commitId上&#xff0c;而没有在一个分支上&#xff1a; 这时如果想要把基于这个commitId创建一个分支&#xff0c;可以使用下面这个命令&#xff1a; git push…

HCIA实验

实验目的&#xff1a; 1、R6为ISP&#xff0c;接口IP地址均为公有地址&#xff0c;该设备只能配置IP地址&#xff0c;之后不能再对其进行任何配置&#xff1b; 2、R1-R5为局域网&#xff0c;私有IP地址192.168.1.0/24&#xff0c;请合理分配&#xff1b; 3、R1、R2、R4&#x…

JUC-多线程

目录 进程 线程 线程的串行 区别 多线程 进程 是指计算机中已执行的程序&#xff0c;曾经是分时系统的基本运作单位在面向进程设计的系统&#xff08;如早期的UNIX&#xff0c;Linux 2.4及更早的版本&#xff09;中&#xff0c;是程序的基本执行实体在面向线程设计的系统…

【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项规程

培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;775454947 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 极安云科专注于技能提升&#xff0c;赋能 2024年广东省高校的技能提升&#xff0c;在培训中我们的应急…

OSCP靶场--Crane

OSCP靶场–Crane 考点(CVE-2022-23940sudo service提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.229.146 -sC -sV --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-25 08:07 EDT Nmap scan report for 192.16…

Java 算法和数据结构 答案整理,最新面试题

Java中如何使用动态规划求解背包问题&#xff1f; 1、定义子问题&#xff1a; 首先确定动态规划状态&#xff0c;通常以物品数量和背包容量为变量定义子问题&#xff0c;例如dp[i][j]表示前i件物品放入容量为j的背包所能获得的最大价值。 2、确定状态转移方程&#xff1a; 基…

手撕算法-盛最多水的容器

描述 分析 两个板之间能盛下的水的量&#xff0c;取决于短板。想让两个板之间能盛下更多的水&#xff0c;需要改变短板的长度。就像水桶效应&#xff1a;那么用两个指针指向容器的两个板&#xff0c;然后每次移动较短的板即可。移动较短的板&#xff0c;可能会增大容积&#x…

计算机网络常见题(持续更新中~)

1 描述一下HTTP和HTTPS的区别 2 Cookie和Session有什么区别 3 如果没有Cookie,Session还能进行身份验证吗&#xff1f; 4 BOI,NIO,AIO分别是什么 5 Netty的线程模型是怎么样的 6 Netty是什么&#xff1f;和Tomcat有什么区别&#xff0c;特点是什么&#xff1f; 7 TCP的三次…

解决 cv2.imread读取带中文路径图片问题

http://t.csdnimg.cn/i8CXn 1.问题&#xff1a; # 中草药数据集样本可视化展示 import cv2 import matplotlib.pyplot as plt %matplotlib inline plt.title("heshouwu") plt.imshow(cv2.imread(r"D:\home\aistudio\data1\archive\train\何首乌\heshouwu_0001.…

[C语言]结构体、位段、枚举常量、联合体

目录 结构体 结构体的使用方法 结构体所占用的大小 位段 位段的使用方法 位段所占用的大小 枚举常量 枚举常量的使用方法 枚举常量的优势 联合体 联合体的使用方法 结构体 结构体的使用方法 结构体是一些值的集合&#xff0c;我们可以定义一个结构体&#xff0c;里…

数据结构入门框架

博主b站入口&#xff1a;Uncertanity的个人空间 参考资料&#xff1a; 《大话数据结构》程杰 《数据结构C语言(第二版)》严蔚敏

为什么静态成员函数不能是虚函数

在面向对象编程中&#xff0c;静态成员函数和虚函数都是常见的概念&#xff0c;但它们之间存在着本质上的差异。由于其特性上的差异&#xff0c;静态成员函数不能声明为虚函数。下面我们来探讨一下为什么静态成员函数不能是虚函数。 我在网上查到最多的说法是静态函数没有this指…

【OpenModelica】1 OpenModelica项目架构

1 OpenModelica项目架构 文章目录 1 OpenModelica项目架构一、 架构总览图二、OpenModelica各部分作用 一、 架构总览图 OpenModelica 环境由几个相互连接的子系统组成&#xff0c;如图 1.1 所示。 其中包括&#xff1a; MDT Eclipse 插件图形模型编辑器/浏览器文本模型编辑器…

开始喜欢上了runnergo,JMeter out了?

RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是&#xff0c;它采用了B/S架构&#xff0c;更灵活、更方便。而且&#xff0c;除了API测试和性能测试&#xff0c;RunnerGo还加上了UI测试和项目管理等实用功能&#xff0c;让测…

代码随想录day30(2)回溯:组合(leetcode77)

题目要求&#xff1a;给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 思路&#xff1a;首先定义两个变量&#xff0c;一个存放符合条件的单一结果&#xff0c;另一个存放符合条件结果的集合&#xff0c;for循环用来横向遍历&#xff0c;递归用来纵…

C语言例4-6:格式字符d的使用例子

代码如下&#xff1a; //格式字符d的使用例子 #include<stdio.h> int main(void) {int num1123;long num2123456;printf("num1%d,num1%5d,num1%-5d,num1%2d\n",num1,num1,num1,num1);//以四种不同格式&#xff0c;输出int型数据num1的值printf("num2%ld,…

基于Spring Boot网络相册设计与实现

摘 要 网络相册设计与实现的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&am…