Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Встроенные типы данных в Python
Python имеет богатый набор встроенных типов данных, которые критически важны для написания тестов автоматизации. Знание этих типов позволяет правильно работать с данными при тестировании API, парсинге ответов и работе с базами данных.
Числовые типы
int — целые числа
- Неограниченная точность
- Примеры: 42, -17, 0, 999999999999
- Используется для ID, статус-кодов, счётчиков
user_id = 123
status_code = 200
assert isinstance(status_code, int)
float — числа с плавающей точкой
- Примеры: 3.14, -0.5, 1.0
- Важно помнить о проблемах округления
- Используется для денежных операций, координат, таймаутов
timeout = 30.5
price = 99.99
assert isinstance(timeout, float)
complex — комплексные числа (редко в тестировании)
- Примеры: 3+4j, complex(1, 2)
bool — логические значения
- True и False
- Используется в условиях, assertions
- Наследует от int (True == 1, False == 0)
is_admin = True
assert isinstance(is_admin, bool)
assert is_admin == 1 # True
Строковые типы
str — строки Unicode
- Неизменяемый тип
- Примеры: "hello", world, """multiline"""
- Основной тип при работе с API ответами
response_text = "success"
assert isinstance(response_text, str)
assert len(response_text) == 7
assert response_text.upper() == "SUCCESS"
bytes — последовательность байт
- Неизменяемый тип
- Используется при работе с бинарными данными, кодированием
- Примеры: b"hello", bytes([72, 105])
data = b"binary data"
assert isinstance(data, bytes)
assert len(data) == 11
bytearray — изменяемая последовательность байт
- Можно модифицировать
- Реже используется в тестировании
Коллекции
list — упорядоченная коллекция изменяемых элементов
- Примеры: [1, 2, 3], ["a", "b"], [1, "mixed", 3.14]
- Сохраняет порядок (с Python 3.7+)
- Используется для работы с массивами из API
users = ["Alice", "Bob", "Charlie"]
assert isinstance(users, list)
assert len(users) == 3
assert users[0] == "Alice"
users.append("Diana")
tuple — упорядоченная коллекция неизменяемых элементов
- Примеры: (1, 2, 3), ("x",), ()
- Более быстрая, чем list
- Используется как ключ в словарях
coordinates = (10, 20)
assert isinstance(coordinates, tuple)
assert len(coordinates) == 2
set — неупорядоченная коллекция уникальных элементов
- Примеры: {1, 2, 3}, {"a", "b", "c"}
- Нет дубликатов
- Быстрая проверка наличия элемента
unique_ids = {1, 2, 3, 1, 2}
assert len(unique_ids) == 3
assert 1 in unique_ids
dict — неупорядоченная коллекция пар ключ-значение
- Примеры: {"name": "John", "age": 30}
- Основной тип при работе с JSON/API ответами
- Неизменяемые ключи (обычно str или int)
user = {"name": "John", "email": "john@example.com"}
assert isinstance(user, dict)
assert user["name"] == "John"
assert "age" in user or True
user["age"] = 30
frozenset — неизменяемый set
- Может быть ключом в словаре
- Реже используется в тестировании
Специальные типы
NoneType — значение None
- Указывает на отсутствие значения
- Используется в проверках, значениях по умолчанию
optional_value = None
assert optional_value is None
assert isinstance(optional_value, type(None))
range — последовательность чисел
- Примеры: range(5), range(1, 10), range(0, 20, 2)
- Ленивое вычисление (экономит память)
- Используется в циклах
for i in range(3):
print(i) # 0, 1, 2
Практический пример для тестирования API
import requests
def test_api_response():
response = requests.get("https://api.example.com/users")
data = response.json() # dict
assert isinstance(data, dict)
assert isinstance(data["users"], list) # list
user = data["users"][0]
assert isinstance(user["id"], int)
assert isinstance(user["name"], str)
assert isinstance(user["active"], bool)
assert isinstance(user["balance"], float)
assert user["metadata"] is None or isinstance(user["metadata"], dict)
# Проверка коллекций
tags = set(user["tags"]) # set для уникальности
assert len(tags) == len(user["tags"])
Знание встроенных типов Python критично для написания надёжных и эффективных автоматизационных тестов.