Вывод таблицы с выравниванием столбцов в Python (без таблиц HTML)
  Для вывода таблицы с выравниванием столбцов в Python без использования HTML-таблиц можно применить строковое форматирование.  Основная идея заключается в определении максимальной длины каждой колонки и использовании этой информации для создания строк с фиксированной шириной.  Вот пример реализации:
  
data = [
    ["Имя", "Возраст", "Город"],
    ["Alice", "30", "New York"],
    ["Bob", "25", "London"],
    ["Charlie", "35", "Paris"],
    ["David", "40", "Tokyo"]
]
def print_aligned_table(data):
  """Печатает таблицу с выравниванием столбцов."""
  col_widths = [max(len(str(item)) for item in col) for col in zip(*data)]  # Определяем ширину каждой колонки
  format_string = "  ".join(["{{:<{}}}".format(width) for width in col_widths]) # Создаем строку форматирования
  for row in data:
    print(format_string.format(*row))
print_aligned_table(data)
  
  Разъяснение кода:
  
    - `data`:  Представляет собой список списков, где каждый внутренний список – это строка таблицы.
- `col_widths`:  Вычисляется максимальная длина каждой колонки.  Используется `zip(*data)` для транспонирования данных (преобразования строк в колонки), затем `max()` для поиска максимальной длины в каждой колонке, а `str(item)` гарантирует, что числа тоже учитываются при определении длины.
- `format_string`:  Формируется строка форматирования.  Для каждой колонки создается placeholder `{{:<{}}}`, где `:<` означает выравнивание по левому краю, а `{}` будет заменено шириной колонки.  `"  ".join(...)` объединяет эти placeholder-ы с двойными пробелами между колонками.
- Цикл `for row in data`:  Итерируется по каждой строке данных.
- `print(format_string.format(*row))`:  Применяет строку форматирования к каждой строке, используя оператор `*` для распаковки строки в отдельные аргументы для метода `format()`.  Это подставляет значения из строки в placeholder-ы в `format_string`, выравнивая текст по левому краю и создавая таблицу с выровненными колонками.
Альтернативные подходы:
  
    - Использование `tabulate`: Библиотека `tabulate` предоставляет более гибкие возможности для форматирования таблиц, включая различные стили выравнивания, границы и другие опции.  Требует установки: `pip install tabulate`.
- `f-strings` (Python 3.6+): Можно использовать `f-strings` для более лаконичного кода, но синтаксис может быть менее читаемым при сложной логике форматирования.
Пример использования `tabulate`:
  
from tabulate import tabulate
data = [
    ["Alice", 30, "New York"],
    ["Bob", 25, "London"],
    ["Charlie", 35, "Paris"],
    ["David", 40, "Tokyo"]
]
headers = ["Имя", "Возраст", "Город"]
print(tabulate(data, headers=headers, tablefmt="grid"))
  
  Этот пример использует `tabulate` для вывода таблицы с заголовками и форматированием "grid".  `tablefmt` позволяет выбирать различные стили таблиц.