Python接口自动化测试框架(基础篇)-- 常用数据类型tuple

简介: Python中tuple(元组)的数据结构,包括元组的创建、访问、修改,以及元组支持的运算符和内置函数,还探讨了元组的特性如不可变性和特殊用法,最后扩展介绍了命名元组的概念和使用。

前言

作为python常用的数据类型之tuple(元组);也是不可变数据类型,标识是()圆括号,元素使用逗号隔开,如果是一个元素的元组,也要使用逗号隔开,否则它不是元组。

>>> print((1))
1
>>> print(type((1)))
<class 'int'>
>>> print(type((1,)))
<class 'tuple'>

不可变数据类型

讲到这里,python常用数据类型中的不可变数据类型已经都列举完了:str、number(bool是可变的数据类型)、tuple;什么叫不可变数据类型?简单理解就是当这类数据类型,它的值无论增减内存地址是不变的,这样就可以称之为不可变数据类型。

  • 以int类型为例:
>>> i = 1
>>> j = 1
>>> print(id(i))
140720483874592
>>> i = j+1
>>> print(id(i))
140720483874624
  • 以bool类型为例(所以它是可变的数据类型):
>>> t = True
>>> print(id(t))
140720483592016
>>> t = False
>>> print(id(t))
140720483592048

tuple元组

创建元组

t = () # 空元组

t1 = (1,) # 只有一个元素的元组,(1) 不是元组

print(t1) # 输出(1,)
访问元组
  • 支持索引(下标)取值

t_1 = (1,2,3,4)

print(t_1[1]) # 输出:2
  • 支持切片取值

t_1 = (1,2,3,4)

print(t_1[1:3]) # 输出:(2,3)
# 切片取值取出的是元组
  • 支持反序取值

t_1 = (1,2,3,4)

print(t_1[-1]) # 输出:4
  • 注意正/反序取值的之后 ,[nⓂ️k] k值的正负跟n/m有关

t_1 = (1,2,3,4)

print(t_1[1:4:2]) # 输出:(2,4)

print(t_1[-1:-4:-2]) # 输出:(4,2)

print(t_1[-1:-4:2]) # 输出:() ,不会有值
print(t_1[1:4:-2]) # 输出:() ,不会有值
修改元组

前面说过tuple是不可变数据类型,但是可以拼接组合生成新的元组

  • 支持+加号拼接

t_1 = (1,2,3)
t_2 = (4,5,6)

t_3 = t_1 + t_2

print(t_3) # 输出:(1,2,3,4,5,6)
  • 同理支持*乘法运算

t_1 = (1,2,3)

print(t_1*2) # 输出:(1,2,3,1,2,3)
元组的运算符
  • 上面已经说过支持加法+拼接和*乘法运算,不再举例
  • len支持求取数据元素长度

t_1 = (1,2,3)
t_2 = (4,5,6)

t_3 = t_1+t_2

print(len(t_3)) # 输出:6
  • 支持成员运算,这里先提一嘴,后面在运算符再详细举例
内置函数
  • index能获取元组的元素索引位置
t_1 = (1,2,3,5)

print(t_1.index(5)) # 输出:3
  • count查找元素出现次数
t_1 = (1,2,3,5)

print(t_1.count(5)) # 输出:1
特殊用法
  • 拆包解包,支持使用变量置换元素

t_1 = (1,2)
a,b = t_1

print(a,b) # 输出:1,2

b,a = t_1
print(a,b) # 输出:2,1
  • 没有符号的对象以逗号隔开,默认就是元组数据类型

t_1 = 1,"a","d"

print(t_1) # 输出:(1,"a","d")
print(type(t_1)) # 输出:<class 'tuple'>

扩展

命名元组

它是一个空间,但不是数据类型,在数据方面可以用来储存数据

  • collections.namedtuple(typename, field_names):返回typename命名元组类,field_names是字段。
# cmd进入python命令交互模式

>>> from collections import namedtuple
>>>
>>> test = namedtuple("test",["name","age","addr"])
>>> t = test("joe",18,"aaaa")
>>> print(t)
test(name='joe', age=18, addr='aaaa')
>>> print(t.name)
joe
>>> print(t.age)
18
  • 后面在接口自动化实战中再去详细介绍namedtuple的应用场景
相关文章
|
7月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
580 1
|
7月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
502 0
|
7月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
672 0
|
7月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
363 0
|
7月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
7月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
317 4
|
8月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
11月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1461 23
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1946 24

推荐镜像

更多