Загрузка данных


Тренажер кода

Название задания: Трассировка и исправление кода: анализ цифрового следа

Условие задания:

Изучите код, сгенерированный ИИ-инструментом, ниже. Он должен анализировать «цифровой след» (список действий) и считать количество подозрительных действий.

def analyze_trace(actions):
    suspicious = ['admin', 'root', 'sudo', 'password']
    flags = []
    for act in actions:
        for word in suspicious:
            if word in act:
                flags.append(word)
    return len(flags)
trace = [
    'user login',
    'admin access',
    'admin settings',
    'root shell',
    'sudo command',
    'ADMIN panel'
]
result = analyze_trace(trace)
print(result)

Вопрос 1 (понимание): что выведет print(result) при запуске?

Вопрос 2 (алгоритмика): в коде есть логическая ошибка. Найдите и исправьте её.

Требование к исправлению:

    функция должна считать количество уникальных ключевых слов из suspicious, найденных во всём списке действий;

    каждое ключевое слово учитывается только один раз;

    для хранения найденных ключевых слов используйте множество set;

    исправленный вариант кода оформите в функции analyze_trace_fixed(actions);

    функция должна корректно считать УНИКАЛЬНЫЕ подозрительные действия;

    должна игнорировать регистр (ADMIN и admin — одно и то же).

Пример вывода:

Текущий вывод: 3.

Проверяется:

     Правильно определён текущий (ошибочный) вывод программы — 4

     Найдена причина ошибки: отсутствие .lower() и дублирование через append()

     Исправленная функция использует set() для уникальности

     Исправленная функция приводит строки к нижнему регистру

Критерии оценки:

    Корректное предсказание вывода исходного кода (трассировка)

    Точная формулировка найденной ошибки

    Корректность исправленного кода