Что такое offset в программировании?

«Что такое offset в программировании?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Offset (смещение) — это числовое значение, указывающее расстояние (в элементах, байтах или строках) от начальной точки до целевой позиции.

Основные контексты использования:

  • Массивы и строки: Индекс элемента (смещение от начала).
    data = ['a', 'b', 'c', 'd']
    offset = 2
    print(data[offset])  # Выведет 'c' (элемент со смещением 2 от начала)
  • Базы данных (SQL): Используется для пагинации результатов.
    -- Пропустить первые 20 записей (OFFSET) и взять следующие 10 (LIMIT)
    SELECT * FROM orders ORDER BY id LIMIT 10 OFFSET 20;
  • Файловые операции: Смещение в байтах для чтения/записи с определённой позиции в файле.
    with open('data.bin', 'rb') as f:
        f.seek(100)  # Перемещаем указатель на смещение 100 байт от начала файла
        chunk = f.read(50)  # Читаем 50 байт, начиная со смещения 100
  • Веб (CSS): Свойства, задающие смещение элемента (например, top, left).