Python之random库的常用函数有哪些
作者:搬砖,赞路费 发布时间:2022-10-04 03:01:13
前言
在进行接口测试时,有些接口字段在不需要测试的时候往往是被写死的,但是你不能保证它就不会出现问题,所以在平时测试的时候就需要覆盖各种情况,这时候就可以为此专门写一个函数或者类来实现字段动态值了。由于我们组的自动化脚本里面的金额字段是固定的,现在需要改成动态值,我用的是python的random库写的,现在来详细记录一下。
一 random库介绍
在python中,用于生成随机数的是random库。但random库生成的随机数是一种采用梅森旋转算法生成的伪随机数,不是真正的随机数,因为计算机是不能产生真正的随机数的。
random库是python的标准库,因此只要安装了python环境,基本就能使用random库,使用方法如下
import random
二 基本随机函数
random库中的随机数由两个基本随机函数产生,一个是seed()函数,一个是random()函数,如下
1. seed()
seed(a=None): 随机数种子函数,默认参数a等于当前系统时间。如果参数a值固定,则随之产生的随机数也会是同一个值。如下
import random
import time
random.seed(a=1)
ran_num1 = random.random()
ran_num3 = random.randint(1, 6)
print("我是第一次随机结果:")
print(ran_num1)
print(ran_num3)
time.sleep(3)
print("我是第二次随机结果:")
print(ran_num1)
print(ran_num3)
从结果可以看出,当参数a的值确定时,产生的就不是随机数了。
2. random()
random(): 生成一个[0.0, 1.0)之间的随机小数
a = 0
while a < 10:
num = random.random()
a += 1
print(num)
三 扩展随机函数
由于基本随机函数不够用,所以又有了以下的扩展随机函数,如下。
1. randint()
randint(a, b): 生成一个[a, b]之间的随机整数
#randint
a = 0
while a < 5:
num = random.randint(1, 5)
a += 1
print(num)
2. uniform()
uniform(a, b): 生成一个[a, b]之间的随机小数
#uniform
a = 0
while a < 5:
num = random.uniform(1, 7)
a += 1
print(num)
3. randrange()
randrange(m,n[,k]): 生成一个[m,n)之间以k(默认为1)为步长的随机整数
#randrange
a = 0
while a < 5:
num = random.randrange(1, 5)
a += 1
print(num)
4. choice()
choice(seq): 从序列中随机选择一个数
#choice
a = 0
while a < 5:
num = random.choice('abcd')
a += 1
print(num)
5. shuffle()
shuffle(seq): 将列表元素顺序打乱,返回打乱后的列表
#shuffle
l = [1, 2, 3, 4]
a = 0
while a < 5:
random.shuffle(l)
a += 1
print(l)
6. sample()
sample(seq, n): 从指定的序列seq中,随机返回n个元素,以列表形式返回
#sample
s = 'abcdfg'
a = 0
while a < 5:
num = random.sample(s, 1)
a += 1
print(num)
四 实例(动态金额值)
要求:返回一个动态金额值,金额范围:
1.0~1的一位小数,两位小数;
2.不超过100的整数;
3.1~100的一位小数,两位小数;(测试金额字段,会不会自动补全两位小数)
实现;
#测试金额字段,会不会自动补全两位小数
#实现金额字段动态值
import random
def get_random_amount():
'''
实现金额字段动态值
:return: random_amount
'''
#小于1的一位小数,两位小数值
amount1 = round(random.random(), 1)
amount2 = round(random.random(), 2)
#整数
amount3 = random.randint(1, 100)
#1~100的一位小数,两位小数值
amount4 = round(random.uniform(1, 100), 1)
amount5 = round(random.uniform(1, 100), 2)
#从5个金额值中随机返回一个
randomList = [amount1, amount2, amount3, amount4, amount5]
random_amount = random.sample(randomList, 1)[0]
print(randomList)
return random_amount
#函数调用
random_amount = get_random_amount()
print(random_amount)
测试结果如下
来源:https://blog.csdn.net/qq_44690947/article/details/122710186


猜你喜欢
- 最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时
- 一、题目内容给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的
- Switch简介Go的switch的基本功能和C、Java类似:switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯
- 前言嗨喽~大家好呀,这里是魔王呐 ~!在学习Python的过程中需要不断的积累和练习,这样才能够走的更远,今天一起来学习怎么用P
- tablewidgetpyqt5的tablewidget组件比较特殊,每个方格可以装载其他组件来搭配实现不同的效果,所以在qtdesigne
- 开发的时候我都是使用XDebug在本地调试,但是最近加入一些项目中去,环境太复杂了,要在本地搭建一个开发环境真的太麻烦了,那么我们怎么使用x
- 最近在使用Tensorflow 实现DNN网络时,遇到一些问题。目前网上关于Tensorflow的资料还比较少,现把问题和解决方法写出来,仅
- 由于xlwt目前只支持xls格式,至于xlsx格式,后面会继续更新import xlwtimport codecsdef Txt_to_Ex
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 6 - Manipulating HTML通过Mo
- 本文介绍了详解TensorFlow在windows上安装与简单示例,分享给大家,具体如下:安装说明平台:目前可在Ubuntu、Mac OS、
- 上次帮朋友写过的一个简单切换效果,超级简单,但也比较适用.因为用到了CSS Sprite技术,DEMO中附带了IE6兼容png的JS.核心J
- 先给大家展示下效果图,如果大家感觉还不错,请继续参考实现思路详解。布局1.左右各一半(col-md-6)2.左侧登录框占左侧一半的10/12
- 1.if ...else ...判断进行断言from time import *from selenium import webdriver
- 一、ZeroClipboard下载地址为大家提供细一些ZeroClipboard的下载地址:Zero Clipboard 开源的 JavaS
- 一、ConfigParser简介ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为sectio
- 准备篇:CentOS 6.6系统安装配置图解教程https://www.jb51.net/os/239738.html一、配置防火墙,开启8
- 设置cookie每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:document.cooki
- 继Go 1.18支持泛型后,Go 将在下个版本中支持pdqsort排序算法再次引起了开发者们的热切讨论。目前,Go仓库的最新commit中提
- 当使用pytorch写网络结构的时候,本人发现在卷积层与第一个全连接层的全连接层的input_features不知道该写多少?一开始本人的做
- 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:def addlist(alist): &nbs