Напишите программу, которая вычисляет и выводит в stdout сумму цифр всех чисел массива, которые находятся в диапазоне между средним значением и 90 перцентилем. Массив чисел считывается из файла, путь к которому передается в виде аргумента командной строки (не stdin). Формат файла: каждое число (int_64) заканчивается символом новой строки.
Примечание: конечно, задание подразумевает реализацию методов сортировки массива, поиска среднего значения и перцентиля.
Напишите программу, которая ответит на вопрос: подобны ли данные треугольники? Координаты считываются из файла, путь к которому передается в качестве аргумента командной строки. Формат файла: {triangle1: {A: [0, 0, 0], B: [0, 5, 0], C: [5, 5, 0]}, triangle2: {A: [0, 0, 0], C: [0, 0, 5], B: [5, 0, 3]}}
Примечание: координата точки – массив [x, y, z].
Некоторое количество человек то наливают воду в бочку, то черпают из бочки. Если человек пытается налить больше воды, чем есть свободного объема – это ошибка, при этом объем воды в бочке не меняется. Так же если человек пытается зачерпнуть больше воды, чем есть в бочке – ошибка, объем воды также при этом не меняется. В остальных случаях – успех, объем бочки меняется соответственно. Вам дан лог файл. Напишите программу, которая ответит на следующие вопросы:
- какое количество попыток налить воду в бочку было за указанный период?
- какой процент ошибок был допущен за указанный период?
- какой объем воды был налит в бочку за указанный период?
- какой объем воды был не налит в бочку за указанный период?
- ... то же самое для забора воды из бочки ...
- какой объем воды был в бочке в начале указанного периода? Какой в конце указанного периода?
Путь к логу, желаемый период – подаются в качестве аргументов командной строки. Результат записывается в csv файл (с наименованием столбцов). Пример строки запуска: python3 task3.py ./log.log 2020-01-01T12:00:00 2020-01-01T13:00:00 Пример лог файла: META DATA: 200 (объем бочки) 32 (текущий объем воды в бочке) 2020-01-01Т12:51:32.124Z – [username1] - wanna top up 10l (успех) 2020-01-01Т12:51:34.769Z – [username2] - wanna scoop 50l (фейл)
Примечание: текст в скобках в логе отсутствует, это для пояснения; для проверки сгенерируйте лог файл объемом 1 Mb, приложите его к решению. Обратите внимание, искомого временного интервала может не быть в логе, приложение не должно при этом крашиться. Если аргументы поданы не верно, в stdout должен выводится usage.
Напишите программу, которая сравнивает 2 строки одинаковые ли они. Результат: вывод «ОК», если строки идентичны, «КО», если не идентичны. Строки подаются в виде аргументов командной строки.
Примечание: во второй строке может быть символ ‘*’ – он заменяет собой любое количество любых символов.
Например:
«аааа» «аааа» - ОК
«аааа» «аа*» - ОК
«a» «*****» - ОК
Дополнение: регулярные выражения ЗАПРЕЩЕНЫ.