软件测试|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公众号:程序员雨果,即可免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试|time模块的用法,你都掌握了吗?

前言 在Python编程中&#xff0c;时间是一个关键的概念&#xff0c;涉及到计时、延时、日期时间操作等。Python的time模块提供了处理时间相关操作的函数和方法。本文将详细介绍time模块的各种功能和用法&#xff0c;帮助您更好地理解和应用时间操作。 时间戳&#xff08;Time…

瑞吉外卖实战学习--项目搭建

瑞吉外卖实战学习 前言1、创建springBoot 项目&#xff0c;并引用相关依赖2、配置数据库3、通过注解检测项目是否可以启动成功4、配置前端页面的静态映射4.1 前端文件放置的位置4.2 由于存放的位置并不是默认的文件中&#xff0c;需要将这些文件静态映射4.3 检测静态文件是否可…

这回轮到鸿蒙禁用安卓了!!!

1月18日&#xff0c;鸿蒙生态千帆仪式上&#xff0c;华为正式宣布了HarmonyOS NEXT&#xff08;下简称鸿蒙星河版或纯血鸿蒙&#xff09;开发者预览已向开发者开放申请&#xff0c;纯血鸿蒙开始走向普及阶段。伴随着不再兼容安卓的纯血鸿蒙铺开&#xff0c;鸿蒙走进了运营属于自…

【OpenModelica】2 交互式使用OpenModelica-上篇

2 交互式使用OpenModelica 文章目录 2 交互式使用OpenModelica前言一、开始使用交互式对话二、使用交互式的模式三、尝试使用冒泡排序算法四、使用cd()指令 前言 以下是在OpenModelica环境中使用交互式会话处理程序的交互式会话。称为OMShell-OpenModelica Shell。这些示例中的…

return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask

Bug信息 Error: Error while compiling statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask (state=08S01,code=1)Bug产生的代码 修复hive表分区: msck repair table xxxBug原因排查 分区数量过大 这个是网上查看的说如果一次…

探索生成式AI Agent,让公众自动化触手可及

在科技浪潮的推动下&#xff0c;AI Agent市场正经历深刻变革。Kognitos智能RPA厂商凭借675万美元融资和生成式AI自动化的定位&#xff0c;吸引业界关注。然而&#xff0c;微软早已将ChatGPT融入Power Platform&#xff0c;提供低代码应用开发体验&#xff0c;引领市场。初创公司…

浅谈linux下的进程地址空间(虚拟地址/线性地址)

目录 什么是地址空间 - 虚拟地址空间 地址空间是如何设计的 为什么要有地址空间 什么是地址空间&#xff1f; 示例&#xff1a; 运行之后发现&#xff1a;同一个变量&#xff0c;同一个地址&#xff0c;在运行一段时间后&#xff0c;竟然会在同一时间出现两个不同的值&…

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

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

C语言例4-9:格式字符s的使用例子

代码如下&#xff1a; //格式字符s的使用例子 #include<stdio.h> int main(void) {printf("%s,%5s,%-5s\n","Internet","Internet","Internet");//以三种不同格式&#xff0c;输出字符串printf("%10.5s,%-10.5s,%4.5s\n&q…

Excel 打开后提示:MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用...

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 MicrosoftExcel无法计算某个公式。在打开的工作簿中有一个循环引用&#xff0c;但无法列出导致循环的引I用。请尝试编辑上次输入的公式&#xff0c;或利用“撤消”命令删除该公式&#xff0c;如下图&…

什么是CVE? CVE漏洞应该如何防护?

CVE&#xff08;Common Vulnerabilities and Exposures&#xff09;的全称是公共漏洞和暴露&#xff0c;是公开披露的网络安全漏洞列表。IT人员、安全研究人员查阅CVE获取漏洞的详细信息&#xff0c;进而根据漏洞评分确定漏洞解决的优先级。 在CVE中&#xff0c;每个漏洞按CVE-…

webserver如何从零开始?

我们要做一个项目&#xff0c;过程是怎么样的呢&#xff1f;git clone ...部署&#xff0c;测试&#xff0c;然后开始写么&#xff0c;这样你大概率会“猪脑过载”&#xff0c;对一个项目的每个部分都没有清晰认识&#xff0c;能写出什么来&#xff1f;写之前当然需要测试每个功…

【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法

一、selenium 中隐藏元素如何定位&#xff1f; 如果单纯的定位的话&#xff0c;隐藏元素和普通不隐藏元素定位没啥区别&#xff0c;用正常定位方法就行了 但是吧~~~能定位到并不意味着能操作元素&#xff08;如click,clear,send_keys&#xff09; 二、隐藏元素 如下图有个输入框…

NOMA免调度接入技术

标题 系统模型 参考视频&#xff1a;添加链接描述 利用接收机的复杂度提升为代价&#xff0c;提升频谱效率。为了保证上行方向上面&#xff0c;能够接入更多的用户&#xff0c;NOMA的根本思路&#xff0c;就是让多个用户占用相同的资源进行上行传输 系统模型 采用TDMA的方式…

修复编译RK3568-buildroot时提示不能使用root权限编译的问题

问题 使用 rk3568 的 sdk 中的 buildroot 来编译根文件系统的时候&#xff0c;出现 "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE1 in environment&#xff09;" 的错误。 解决方法 根据错误提示&#xff0c;我们将 set FORCE_UNSAFE_CON…

Docker在虚拟机中的基本配置

1、Docker解决依赖兼容问题&#xff0c;Docker是如何实现的呢&#xff1f; Docker为了解决依赖的兼容问题的&#xff0c;采用了两个手段&#xff1a; - 将应用的Libs&#xff08;函数库&#xff09;、Deps&#xff08;依赖&#xff09;、配置与应用一起打包 - 将每个应用放到…

【Excel表格中如何将单元格数据复制粘贴到合并后的单元格中】

要实现的效果如下&#xff1a; 方法一、使用插件 1、下载“方方格子”插件 下载地址&#xff1a;http://www.ffcell.com/home/ffcell.aspx 2、下载完成后&#xff0c;启动WPS或Excel软件&#xff0c;同意添加插件&#xff0c;选择【方方格子】-【复制粘贴】-【复制到合并区域…

Acwing_795前缀和 【一维前缀和】+Acwing_796子矩阵的和 【二维前缀和】

Acwing_795前缀和 【一维前缀和】 题目&#xff1a; 代码&#xff1a; #include <bits/stdc.h> #define int long long #define INF 0X3f3f3f3f #define endl \n using namespace std; const int N 100010; int arr[N];int n,m; int l,r; signed main(){std::ios::s…

网络七层模型之应用层:理解网络通信的架构(七)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

权限系统设计

权限设计 为什么要有权限设计&#xff1f; 对于一个系统&#xff0c;有多个模块&#xff0c;在需要给不同的用户分配不同的模块权限的场景下&#xff0c;就需要进行权限设计&#xff0c;按需给用户划分对应的权限。比如一个企业系统有用户管理模块、财务管理模块、库存管理模…