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)系统中,确保每次代码提交后都能自动执行测试,及时发现和修复问题。
总结
通过设计全面的测试用例,使用合适的测试框架,并确保自动化测试,你可以有效地覆盖所有数据类型,验证服务端接口的正确性和鲁棒性。