← Назад к вопросам

Какие знаешь встроенные типы данных в Python?

1.3 Junior🔥 191 комментариев
#Python

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Встроенные типы данных в 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 критично для написания надёжных и эффективных автоматизационных тестов.