Ejemplo n.º 1
0
    result = list()
    table = user.get_table('Животные')
    if table is None:
        result.append('Таблица с именем Животные не найдена!')
        result_count -= 100
    else:
        names = list()
        for col in table.cols:
            names.append(col.name)
        if len(colomn_names) != len(names):
            result.append(
                f'Количество столбцов не соотвествует заданию. {len(colomn_names)} != {len(names)}'
            )
            result_count -= 40
        for name in colomn_names:
            if names.count(name) == 0:
                result.append(f'Отсутствует столбец {name}')
                result_count -= 60 / len(colomn_names)
    return result_count, result


task = ManagerTask.add(
    name="""Добавление столбцов""",
    description=
    """Обычно таблицы представлены в виде столбцов, и строк. Поэтому в этом задании показано, как создаются столбцы.""",
    instruction=
    """Для добавления столбца используйте команду add_colomn('Название столбца 1', 'Название столбца 2')""",
    example="""add_colomn('Название столбца 1', 'Название столбца 2')""",
    quest=
    f"""Добавьте в таблицу Животные, такие столбцы: {', '.join(colomn_names)}""",
    check_func=check)
Ejemplo n.º 2
0
from app.no_web.base_task import ManagerTask, Table


def check(user):
    result_count = 100
    result = list()
    table = user.get_table('Животные')
    count = user.tables.count()
    if table is None:
        result.append('Таблица с именем Животные не найдена!')
        result_count -= 50
    if count != 1:
        result.append(
            f'Количество таблиц не соответствует заданию {count} != 1')
        result_count -= 50
    return result_count, result


task = ManagerTask.add(
    name="""Удаление таблицы""",
    description=
    """Удаление таблицы довольно важная возможность. Когда вы начнёте реогранизовывать вашу базу данных, некоторые таблицы понадобиться удалить из - за того, что данные которые они хранили, перестали быть нужны, или же будут хранится в другой таблице.""",
    instruction=
    """Для удаления таблицы, выберете нужную таблицу и используйте команду del_table()""",
    example="""del_table()""",
    quest="""Удалите ВСЕ таблицы, кроме таблицы с названием Животные.""",
    check_func=check)
Ejemplo n.º 3
0
from app.no_web.base_task import ManagerTask, Table


def check(user):
    result_count = 100
    result = list()
    table = user.get_table('Животные')
    if table is None:
        result.append('Таблица с именем Животные не найдена!')
        result_count -= 100
    else:
        if table.rows.count() != 6:
            result.append(
                f'Количество строк не соотвествует заданию. {table.rows.count()} != 6'
            )
            result_count -= 100
    return result_count, result


task = ManagerTask.add(
    name="""Удаление строк""",
    description="""В этом задании показано, как удаляются строки.""",
    instruction=
    """Для удаления строки используйте команду del_row(номер строки)""",
    example="""del_row(3)""",
    quest=f"""Оставьте в таблице Животные 6 строк.""",
    check_func=check)
Ejemplo n.º 4
0
from app.no_web.base_task import ManagerTask, Table

def check(user):
    result_count = 100
    result = list()
    table = user.table()
    if table is None or table.name != 'Животные':
        result.append('Таблица с именем Животные не выбрана!')
        result_count -= 100
    return result_count, result

task = ManagerTask.add(
    name = """Выбор таблицы""",
    description = """Для того, чтобы получить возможность узнать чем заполнена ваша таблица, требуется выбрать её.""",
    instruction = """Для выбора таблицы используйте команду select_table('Название таблицы')""",
    example = """select_table('Тестовая таблица')""",
    quest = """Выберите таблицу с названием 'Животные' """,
    check_func = check
)
Ejemplo n.º 5
0
        result_count -= 100
    else:
        if table.rows.count() != 6:
            result.append(f'Количество строк не соотвествует заданию. {table.rows.count()} != 6')
            result_count -= 50
        types = list()
        for row in table.rows:
            for e in row.items:types.append(e.item_type)
        r1 = 0
        r2 = 0
        r3 = 0
        if types.count(0) != 0: r1 = types.count(0) / len(types) * 100
        if types.count(1) != 0: r2 = types.count(1) / len(types) * 100
        if types.count(2) != 0: r3 = types.count(2) / len(types) * 100
        max = 0
        if r1 != r2 and r2 != r3 and r1 != r3:
            result.append(f'Процент строк цифрового типа = {r1}')
            result.append(f'Процент строк дробного типа = {r2}')
            result.append(f'Процент строк строкового типа = {r3}')
            result_count -= 50
        
    return result_count, result

task = ManagerTask.add(
    name = """Изменение значения строк""",
    description = """В этом задании показано, как можно изменить значение у строки.""",
    instruction = """Для изменения строки используйте команду set_row(номер строки, номер столбца, новое значение)""",
    example = """set_row(1, 1, 'New value')""",
    quest = f"""Сделайте половину строк с одним типом, а вторую половину с другим типом.""",
    check_func = check
)
Ejemplo n.º 6
0
                result.append(f'Название столбца не исправлено = {col}')
                result_count -= 10
        errors = 0
        for i2, row in enumerate(table.rows):
            for i, e in enumerate(row.items.all()):
                if e.item() == '':
                    result.append(f'#{i2}|{i} - пустая ячейка')
                    errors += 1
                elif (i == 0 or i == 2) and e.item_type != 2:
                    errors += 1
                    result.append(
                        f'#{i2}|{i} - не является строкой = {e.item()}')
                else:
                    if (i == 1 or i == 3) and e.item_type != 0:
                        errors += 1
                        result.append(
                            f'#{i2}|{i} - не является числом = {e.item()}')
        result_count -= errors
        result.append(f'Всего ошибок в строках = {errors}')
    return result_count, result


task = ManagerTask.add(
    name="""Итоговое задание по пройденным функциям""",
    description=
    """Данное задание проверяет освоение работы с функциями для работы с таблицами.""",
    instruction="""Для получения таблицы введите команду create_test()""",
    example="""create_test()""",
    quest=
    f"""В этом задании требуется привести таблицу 'Тестовая таблица для задания 10' в порядок. Добавьте ещё несколько строк. Количество строк в таблице должно быть = 13.""",
    check_func=check)
Ejemplo n.º 7
0
            )
            result_count -= 40
        types = list()
        for row in table.rows:
            for e in row.items:
                types.append(e.item_type)
        r1 = 0
        r2 = 0
        r3 = 0
        if types.count(0) != 0: r1 = types.count(0) / len(types) * 100
        if types.count(1) != 0: r2 = types.count(1) / len(types) * 100
        if types.count(2) != 0: r3 = types.count(2) / len(types) * 100
        max = 0
        if r1 > max: max = r1
        if r2 > max: max = r2
        if r3 > max: max = r3
        if max != 100:
            result.append(f'Процент строк одинакового типа = {max}')
            result_count -= (60 - 60 * (max / 100))

    return result_count, result


task = ManagerTask.add(
    name="""Добавление строк""",
    description="""В этом задании показано, как создаются строки.""",
    instruction=
    """Для добавления строки используйте команду add_row('строка', цифра и т.д.)""",
    example="""add_row('Страус', '1000 кг', 5, 'Зоопарк')""",
    quest=f"""Добавьте в таблицу Животные, 10 строк одного типа.""",
    check_func=check)
Ejemplo n.º 8
0
    table = user.get_table('Животные')
    if table is None:
        result.append('Таблица с именем Животные не найдена!')
        result_count -= 100
    else:
        names = list()
        for col in table.cols:
            names.append(col.name)
        if len(colomn_names) != len(names):
            result.append(
                f'Количество столбцов не соотвествует заданию. {len(colomn_names)} != {len(names)}'
            )
            result_count -= 50
        if names.count('Вес') == 0:
            result.append(f'Отсутствует столбец Вес')
            result_count -= 25
        if names.count('Размер') != 0:
            result.append(f'Столбец Размер не был изменён')
            result_count -= 25
    return result_count, result


task = ManagerTask.add(
    name="""Изменение столбцов""",
    description=
    """В данном задании вы научитесь изменять название, уже существующих, столбцов.""",
    instruction=
    """Для изменения названия используйте команду rename_colomn(номер столбца, 'Название колонки')""",
    example="""rename_colomn(2, 'Название колонки')""",
    quest="""Измените столбец Размер на Вес в таблице Животные.""",
    check_func=check)
Ejemplo n.º 9
0
from app.no_web.base_task import ManagerTask, Table


def check(user):
    result_count = 100
    result = list()
    table = user.get_table('Животные')
    count = user.tables.count()
    if table is None:
        result.append('Таблица с именем Животные не найдена!')
        result_count -= 40
    if count < 3:
        result.append(
            f'Количество таблиц не соответствует заданию {count} < 3')
        result_count -= (3 - count) * 20
    return result_count, result


task = ManagerTask.add(
    name="""Создание таблицы""",
    description="""Таблица - это набор связанных данных.""",
    instruction=
    """Для создания таблицы используйте команду create_table('Название таблицы')""",
    example="""create_table('Тестовая таблица')""",
    quest=
    """Создайте таблицу с названием Животные. Создайте ещё, как минимум 2 таблицы с произвольным названием.""",
    check_func=check)