首页 > 编程语言 >软件测试|Python random模块,超乎想象的强大

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

时间:2023-08-08 18:33:26浏览次数:36  
标签:string Python random choice 模块 print import 软件测试

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

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

返回整数

  1. random.randange()

语法如下:

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

参数解析:

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

示例如下:

import random
for i in range(5):
    print(random.randrange(30))
############
9
25
21
3
20
------------------
import random
for i in range(5):
    print(random.randrange(10, 20))
###########
14
12
11
14
13
-------------------

import random

for i in range(5):
    print(random.randrange(20, 30, 2))
############
24
28
22
22
24
  1. random.randint()

语法如下:

random.randint(a, b)

语法说明:

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

示例如下:

import random

for i in range(5):
    print(random.randint(10,20))
######
12
15
10
13
13

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

返回浮点数

  1. random.random()

语法格式:

random.random()

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

使用示例

import random

for i in range(5):
    print(random.random())
-----------------
0.051698653828633145
0.10619823413246887
0.33732593583951986
0.6763699334756532
0.16816052346812582


import math
import random

for i in range(6):
    print(math.ceil(random.random() * 1000))

---------------------
67
38
612
639
454
870
  1. random.uniform()

语法格式如下:

random.uniform(a, b)

语法说明:

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

使用示例

import random

for i in range(5):
    print(random.uniform(1, 10))

###############
5.457242422186069
8.633135221688587
2.9232627928020625
7.921168676991703
2.07340428271263

---------------------
import random

for i in range(5):
    print(random.uniform(12, 3))

####################
3.1848989873887614
5.15029109210898
3.947059333936842
9.637384540893176
4.816027706079555

以列表作为参数

  1. random.choice()

语法如下:

random.choice(seq)

语法说明:

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

示例如下:

import string

print(random.choice([1, 2, 3, 4, 5]))
# 字母数组
print(random.choice(["a", "b", "c"]))
# 字母元组
print(random.choice(("a", "b", "c")))
# 字符串
print(random.choice("abcdef"))
# string 模块返回的大小写字母字符串
print(random.choice(string.ascii_letters))
# string 模块返回的数字字符串
print(random.choice(string.digits))
# string 模块返回的数字字符串+大小写字母字符串
print(random.choice(string.digits + string.ascii_uppercase))

#############
3
b
c
d
e
7
H
  1. random.choices()

语法如下:

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

参数说明:

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

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

示例如下:

import random
a = [1,2,3,4,5]
print(random.choices(a,k=5))

#########
[4, 3, 5, 3, 5]
---------
a = [1, 2, 3, 4, 5]
print(random.choices(a, weights=[0, 0, 0, 0, 1], k=5))

# 序列有多长,weights 对应的序列就得多长,每个位置都是一一对应
# 像这里,5 的权重是 1,其他是 0 ,所以每次都取 5,因为它的权重最高,其他元素没有权重
########
[5, 5, 5, 5, 5]

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

# 2 的权重更大,所以取到它的概率更高
################
[3, 3, 5, 3, 5]
  1. random.shuffle()

语法如下:

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

示例如下:

import random

# 数字数组
a = [1, 2, 3, 4, 5]
random.shuffle(a)
print(a)

# 字母数组
b = ["a", "b", "c"]
random.shuffle(b)
print(b)

######
[4, 3, 2, 1, 5]
['b', 'a', 'c']
  1. random.sample()

语法如下:

random.sample(population, k)

示例如下:

import random
import string

print(random.sample([1, 2, 3, 4, 5], 3))
# 字母数组
print(random.sample(["a", "b", "c"], 3))
# 字母元组
print(random.sample(("a", "b", "c"), 3))
# 字符串
print(random.sample("abcdef", 3))
# string 模块返回的大小写字母字符串
print(random.sample(string.ascii_letters, 3))
# string 模块返回的数字字符串
print(random.sample(string.digits, 3))
# string 模块返回的数字字符串+大小写字母字符串
print(random.sample(string.digits + string.ascii_uppercase, 3))

############
[4, 3, 5]
['b', 'c', 'a']
['a', 'b', 'c']
['c', 'a', 'f']
['l', 't', 'y']
['0', '8', '3']
['5', '8', 'T']

总结

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


标签:string,Python,random,choice,模块,print,import,软件测试
From: https://blog.51cto.com/u_15640304/7011244

相关文章

  • 软件测试|pip常用命令总结
    当使用Python进行开发时,pip是一个非常有用的包管理工具,它可以帮助我们方便地安装、升级和管理Python包。本文将介绍一些常用的pip命令,以帮助您更好地使用pip。查看帮助文档运行pip--help运行这个命令将帮助我们更好地了解pip的使用,pip命令的参数会完整展示出来,如下:pip--helpUsa......
  • 软件测试|docker create 与 docker run的异同,你都会了吗?
    DockerRunvsDockerCreate:创建和管理容器的差异Docker是一种流行的容器化平台,它提供了多种命令来创建和管理容器。其中两个常用的命令是"dockerrun"和"dockercreate"。虽然它们都用于创建容器,但在用法和功能上有一些区别。让我们来看看它们之间的差异。dockercreatedockercr......
  • Python中文件操作的详细使用:open()、os.open()和with open()
    前言在编程语言中,文件读写是最常见的IO操作,Python内置了读写文件的函数,其中包括open()函数、os.open()函数以及withopen()语句。本文将详细介绍这三种方法的使用方式、区别和最佳实践。open()open()函数是Python内置的用于打开文件的函数,它接受一个文件路径和打开模式作为参数,并返......
  • Python_GUI(pySide)开发指南(@Like)
    Python_GUI(pySide)开发指南(@Like) 目录一、PythonGUI简介二、PySide6工具安装1.安装VSCode:https://code.visualstudio.com/2.安装Python:https://www.python.org/downloads/3.安装PyCharm:https://www.jetbrains.com/pycharm/4.更新pip: 命令python.exe-mpip......
  • Python | isinstance函数
    isinstance函数isinstance的意思是“判断类型”;isinstance()是一个内置函数,用于判断一个对象是否是一个已知的类型,类似type()。isinstance()与type()区别type()不会认为子类是一种父类类型,不考虑继承关系。isinstance()会认为子类是一种父类类型,考虑继承关系。如果要判......
  • 我的python路-python基础
    以前用的比较多的语言是java,但是自从从事测试行业以来,发现“通用的语言”竟然是python!呜呼~各种评论都说python学习很简单,but一点也不简单好吗,本次分享就是一个记录,给一些小白同学做参考,大神请帮忙指正错误~~本期学习笔记:1、python语言使用变量直接赋值即可,不用声明类型,但是使......
  • python 标准库Enum模块
    1.Enum模块简介枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等enum规定了一个有限集合的属性,限定只能使用集合内的值,明......
  • Unittest + python + Selenium + HTMLTestRunner 自动化测试
      1.测试框架参数说明 base/base_page.py对selenium方法进行二次封装 config/setting.py基础信息 pageobject/把每个页面的页面元素和操作,放在一个py文件中。测试用例只需引用对应页面的操作 report存放测试报告的 runcase/start_ca......
  • 利用Python Flask蓝图加自定义蓝图划分优雅的目录结构
    我们在用Flask开发网站的时候。经常看到有很多人把所有的路由函数放到了入口文件,这种做法是非常不可取的,如果我们的视图函数有几百个了都写到一个文件里肯定是不行的。还有在实现中我们都在比较大型项目里面我们可能有十几个甚至几十个这种不同模型。我们需要考虑把这些模型分文别......
  • pip安装加速&&python淘宝镜像安装包
    国内源:新版ubuntu要求使用https源,要注意。清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux......