【python】基础数据类型

Python3 六个标准的数据类型

  • Number(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Python 提供了丰富的内置数据类型,每种类型都有其特定的用途和操作方式。理解这些基础数据类型是掌握 Python 编程的基础。

在 Python 中,基础数据类型(也称为内置数据类型)是编程中最常用的数据类型。以下是 Python 中的一些基础数据类型:

1. 数字类型(Numeric Types)

  • 整数(int) :表示整数值,例如 1, -3, 100。
  • 浮点数(float) :表示浮点数值,例如 3.14, -0.001, 2.0。
  • 复数(complex) :表示复数值,例如 1+2j, 3-4j。

2. 布尔类型(Boolean Type)

  • 布尔值(bool) :表示真或假,只有两个值:True 和 False。

3. 字符串类型(String Type)

  • 字符串(str) :表示文本数据,例如 "Hello", 'Python', """Multiline string""".

4. 序列类型(Sequence Types)

  • 列表(list) :有序的可变序列,例如 [1, 2, 3], ['a', 'b', 'c']。
  • 元组(tuple) :有序的不可变序列,例如 (1, 2, 3), ('a', 'b', 'c')。
  • 范围(range) :表示一个不可变的数字序列,通常用于循环,例如 range(10)。

5. 集合类型(Set Types)

  • 集合(set) :无序的、不重复的元素集合,例如 {1, 2, 3}, {'a', 'b', 'c'}。
  • 冻结集合(frozenset) :不可变的集合,例如 frozenset({1, 2, 3})。

6. 映射类型(Mapping Type)

  • 字典(dict) :无序的键值对集合,例如 {'a': 1, 'b': 2}, {1: 'one', 2: 'two'}。

7. 二进制类型(Binary Types)

  • 字节(bytes) :表示不可变的字节序列,例如 b'Hello', b'\x00\x01\x02'。
  • 字节数组(bytearray) :表示可变的字节序列,例如 bytearray(b'Hello')。
  • 内存视图(memoryview) :提供对其他二进制对象的内存访问,例如 memoryview(b'Hello')。

示例代码

python 复制代码
# 数字类型
a = 10          # 整数
b = 3.14        # 浮点数
c = 1 + 2j      # 复数

# 布尔类型
d = True        # 布尔值
e = False       # 布尔值

# 字符串类型
f = "Hello"     # 字符串
g = 'Python'    # 字符串

# 序列类型
h = [1, 2, 3]   # 列表
i = (1, 2, 3)   # 元组
j = range(5)    # 范围

# 集合类型
k = {1, 2, 3}   # 集合
l = frozenset({1, 2, 3})  # 冻结集合

# 映射类型
m = {'a': 1, 'b': 2}  # 字典

# 二进制类型
n = b'Hello'    # 字节
o = bytearray(b'Hello')  # 字节数组
p = memoryview(b'Hello') # 内存视图

总结

思考一:如何对服务端接口测试,覆盖所有数据类型覆盖

对服务端接口进行测试时,确保覆盖所有数据类型是非常重要的,这样可以验证接口在处理不同数据类型时的正确性和鲁棒性。以下是一些步骤和建议,帮助你进行全面的接口测试。

1. 理解接口需求

首先,你需要详细了解接口的需求文档,包括:

  • 接口的输入参数和输出结果。
  • 每个参数的数据类型和取值范围。
  • 接口的预期行为和异常处理。

2. 设计测试用例

根据接口的需求,设计测试用例,确保覆盖所有可能的数据类型和边界条件。以下是一些常见的数据类型和对应的测试用例:

数字类型
  • 整数(int):正数、负数、零、最大值、最小值。
  • 浮点数(float) :正数、负数、零、极大值、极小值、特殊值(如 NaN, Infinity)。
  • 复数(complex):实部和虚部为整数、浮点数。
布尔类型
  • 布尔值(bool) :True 和 False。
字符串类型
  • 字符串(str):空字符串、非空字符串、特殊字符、长字符串、包含特殊编码的字符串。
序列类型
  • 列表(list):空列表、非空列表、包含不同数据类型的列表。
  • 元组(tuple):空元组、非空元组、包含不同数据类型的元组。
  • 范围(range):空范围、非空范围。
集合类型
  • 集合(set):空集合、非空集合、包含不同数据类型的集合。
  • 冻结集合(frozenset):空冻结集合、非空冻结集合、包含不同数据类型的冻结集合。
映射类型
  • 字典(dict):空字典、非空字典、包含不同数据类型的键值对。
二进制类型
  • 字节(bytes):空字节、非空字节、包含特殊字节的字节序列。
  • 字节数组(bytearray):空字节数组、非空字节数组、包含特殊字节的字节数组。
  • 内存视图(memoryview):空内存视图、非空内存视图。

3. 使用测试框架

选择一个合适的测试框架来编写和执行测试用例。常见的测试框架包括:

  • unittest:Python 内置的单元测试框架。
  • pytest:功能强大且易于使用的测试框架。
  • requests:用于发送 HTTP 请求的库,常用于接口测试。

4. 编写测试代码

以下是一个使用 unittest 和 requests 进行接口测试的示例代码:

python 复制代码
import unittest
import requests

class TestAPI(unittest.TestCase):

    def setUp(self):
        self.base_url = "http://your-api-endpoint.com"

    def test_integer(self):
        response = requests.get(f"{self.base_url}/integer", params={"value": 123})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"result": 123})

    def test_float(self):
        response = requests.get(f"{self.base_url}/float", params={"value": 3.14})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"result": 3.14})

    def test_string(self):
        response = requests.get(f"{self.base_url}/string", params={"value": "Hello"})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"result": "Hello"})

    def test_list(self):
        response = requests.get(f"{self.base_url}/list", params={"value": [1, 2, 3]})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"result": [1, 2, 3]})

    def test_dict(self):
        response = requests.get(f"{self.base_url}/dict", params={"value": {"a": 1, "b": 2}})
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {"result": {"a": 1, "b": 2}})

if __name__ == "__main__":
    unittest.main()

5. 执行测试

运行测试代码,确保所有测试用例都能通过。如果发现任何问题,根据错误信息进行调试和修复。

6. 自动化测试

将测试代码集成到持续集成(CI)系统中,确保每次代码提交后都能自动执行测试,及时发现和修复问题。

总结

通过设计全面的测试用例,使用合适的测试框架,并确保自动化测试,你可以有效地覆盖所有数据类型,验证服务端接口的正确性和鲁棒性。

相关推荐
在世修行4 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_962885724 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI4 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
信誓旦旦的程序猿5 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫5 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
KeepRobots7 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq7 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司7 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
“AI国潮设计-小江”7 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
砚底藏山河8 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融