【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) :表示真或假,只有两个值:TrueFalse

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)TrueFalse
字符串类型
  • 字符串(str):空字符串、非空字符串、特殊字符、长字符串、包含特殊编码的字符串。
序列类型
  • 列表(list):空列表、非空列表、包含不同数据类型的列表。
  • 元组(tuple):空元组、非空元组、包含不同数据类型的元组。
  • 范围(range):空范围、非空范围。
集合类型
  • 集合(set):空集合、非空集合、包含不同数据类型的集合。
  • 冻结集合(frozenset):空冻结集合、非空冻结集合、包含不同数据类型的冻结集合。
映射类型
  • 字典(dict):空字典、非空字典、包含不同数据类型的键值对。
二进制类型
  • 字节(bytes):空字节、非空字节、包含特殊字节的字节序列。
  • 字节数组(bytearray):空字节数组、非空字节数组、包含特殊字节的字节数组。
  • 内存视图(memoryview):空内存视图、非空内存视图。

3. 使用测试框架

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

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

4. 编写测试代码

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

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)系统中,确保每次代码提交后都能自动执行测试,及时发现和修复问题。

总结

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

相关推荐
还不秃顶的计科生23 分钟前
LeetCode 热题 100第二题:字母易位词分组python版本
linux·python·leetcode
weixin_4624462341 分钟前
exo + tinygrad:Linux 节点设备能力自动探测(NVIDIA / AMD / CPU 安全兜底)
linux·运维·python·安全
不瘦80斤不改名42 分钟前
Python 日志(logging)全解析
服务器·python·php
多米Domi0111 小时前
0x3f 第19天 javase黑马81-87 ,三更1-23 hot100子串
python·算法·leetcode·散列表
追风少年ii1 小时前
2025最后一天--解析依赖于空间位置的互作细胞亚群及下游功能效应
python·数据分析·空间·单细胞·培训
小鸡脚来咯2 小时前
python虚拟环境
开发语言·python
龘龍龙2 小时前
Python基础(九)
android·开发语言·python
大学生毕业题目2 小时前
毕业项目推荐:91-基于yolov8/yolov5/yolo11的井盖破损检测识别(Python+卷积神经网络)
python·yolo·目标检测·cnn·pyqt·井盖破损
XLYcmy3 小时前
TarGuessIRefined密码生成器详细分析
开发语言·数据结构·python·网络安全·数据安全·源代码·口令安全
weixin_433417673 小时前
Canny边缘检测算法原理与实现
python·opencv·算法