软件测试|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,一经查实,立即删除!

相关文章

淘宝店商家爬虫工具 天猫店卖家电话采集软件使用指南

淘宝店商家爬虫工具是一款用于采集天猫店卖家电话号码的软件。本文将提供使用指南&#xff0c;并附带相关代码&#xff0c;帮助用户快速了解和使用该软件。 代码示例&#xff1a; import requests from bs4 import BeautifulSoup# 设置请求头 headers {User-Agent: Mozilla/…

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

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

建立远程 Git 代码仓库

一、建立远程代码库 要在 Git 中建立远程代码库&#xff0c;你通常需要在代码托管平台上创建一个新的远程仓库&#xff0c;然后将本地仓库与之关联。以下是一般步骤&#xff1a; 在代码托管平台上创建远程仓库&#xff1a; 登录到你选择的代码托管平台&#xff08;如 GitHub、…

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…

前端理论总结(html5)——form表单的新增特性/h5的新特性

form表单的新增特性 range&#xff1a;范围 color&#xff1a;取色器 url&#xff1a;对url进行验证 tel&#xff1a;对手机号格式验证 email&#xff1a;对邮箱格式验证 novalidate &#xff1a;提交表单时不验证 form 或 input 域 numbe…

i5 1240p和r7 8840HS差距 酷睿i51240p和r7 8840HS参数对比

r7 8840HS采用 Zen 4架构 4 nm制作工艺8核 16线程主频 3.3GHz睿频5.1GHz 三 级缓存16MB TDP 功耗 28w 搭载AMD Radeon 780M核显 选r7 8840HS还是i5-1240P这些点很重要 http://www.adiannao.cn/dy i5-1240P处理器具有4个性能核心&#xff0c;8个效能核心&#xff0c;总计12核心…

JUC-多线程

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

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

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

jdbc连接回顾

不使用任何工具类手动连接 package com.oracle.jdbc;import java.sql.*;/***jdbc查询 jdbc数据库下&#xff0c;user表中所有数据并打印在控制台* jdbc操作数据库步骤* 1注册驱动* 2创建数据库连接对象* 3获取传输器对象* 4执行sql* 5处理结果集* 6释放资源*/public cla…

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…

python环境移植(本机windows到离线windows环境)

Python环境整体迁移(包括无网络情况)_python 迁移 新老无法联网-CSDN博客

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

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

vue 重新渲染dom

当我们用 v-if"pane_persuser" 之类的属性值&#xff08;true和false&#xff09;在父页面来控制子页面弹窗打开关闭时&#xff0c;在第二次打开子页面时&#xff0c;子页面并不会重新执行mounted&#xff0c;也就不会重新执行我们写的某些函数来加载界面的值&#x…

数字和

输入一个整数 n,求各个位上的数字和,最长 200 位 输入 123456789987654321123456789987654321 输出 180 样例输入 45676475645643535479097091092198721753297409443093983432 样例输出 268 代码 #include<bits/stdc.h> using namespace std; int main(){ …

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

描述 分析 两个板之间能盛下的水的量&#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.…