def parse_info(info):
    """
    Функция осуществляет разбор текста на 6 составляющих (атрибутов), при этом осуществляется валидация
    введенной информации.
    Args:
        info: Текст сообщения пользователя, который нужно разобрать.

    Returns (tuple):
        Пару, которая состоит из сообщения об ошибке и списка атрибутов. Если при валидации ошибок не было, то
        сообщение будет пустой строкой, а атрибуты будут приведены к стандартному виду.
    """
    attributes = info.split(';')
    # количество аттрибутов
    if len(attributes) != 6:
        return 'Информация о человеке представляет собой 6 атрибутов, разделенных символом \";\". ' \
               'Формат: \"id;ФИО;пол;возраст;город;страна\".', attributes

    # id
    if attributes[0].isdigit():
        attributes[0] = int(attributes[0])
    else:
        return 'Идентификатор должен быть числом', attributes

    # возраст
    if attributes[2].isdigit():
        attributes[2] = int(attributes[2])
    else:
        return 'Возраст должен быть числом', attributes

    # пол
    attributes[3] = attributes[3].lower()
    if attributes[3] not in ['м', 'ж', 'муж', 'жен']:
        return 'Пол может быть одним из следующих значений: м, ж, муж, жен.', attributes

    # ФИО, город и страна
    for i in [1, 4, 5]:
        attributes[i] = attributes[i].capitalize()

    return '', attributes