diff --git a/dk92_komarenko/Lab_0/Lab0.py b/dk92_komarenko/Lab_0/Lab0.py new file mode 100644 index 0000000..f0b593d --- /dev/null +++ b/dk92_komarenko/Lab_0/Lab0.py @@ -0,0 +1,15 @@ +import math + +AB = input("Length of the 1 leg: ") +AC = input("Length of the 2 leg : ") + +AB = float(AB) +AC = float(AC) + +BC = math.sqrt(AB**2 + AC**2) + +S = (AB * AC) / 2 +P = AB + AC + BC + +print("The area of the triangle : %.2f" % S) +print("Perimeter of a triangle : %.2f" % P) \ No newline at end of file diff --git a/dk92_komarenko/Lab_1/Lab1.py b/dk92_komarenko/Lab_1/Lab1.py new file mode 100644 index 0000000..06aa9b2 --- /dev/null +++ b/dk92_komarenko/Lab_1/Lab1.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 + +"""This module displays all file names and sizes at the given path.""" + +import argparse +import os + +parser = argparse.ArgumentParser() +parser.add_argument("dir_path", type=str, help='Paste the link to the directory.') +parser.add_argument("-a", "--action", help='Select an action.', default="up", choices=['up', 'down']) +args = parser.parse_args() + + +def find_files(dir_path: str): + """Create dictionary with file name and size. + Args: + dir_path : The path to the folder. + Returns: + dict: Returns a dictionary with folder files and their sizes. + """ + f_dict = {} + files = os.listdir(dir_path) + for fi in files: + f_path = os.path.join(dir_path, fi) + if os.path.isfile(f_path): + onlyfiles = fi + f_size = round(os.path.getsize(f_path)/1024, 2) + f_dict[f_size] = onlyfiles + if ~any(f_dict): + print("No files found in the specified path") + return f_dict + + +def up(): + """Display a dictionary in ascending order of its key values.""" + up_dict = dict(sorted(find_files(args.dir_path).items())) + for key in up_dict: + print(up_dict[key], '->', key, 'Kb') + + +def down(): + """Display a dictionary by decaying the values of its keys.""" + down_dict = dict(sorted(find_files(args.dir_path).items(), reverse=True)) + for key in down_dict: + print(down_dict[key], '->', key, 'Kb') + + +if args.action == 'up': + up() +elif args.action == 'down': + down() +else: + print('OOOPS') diff --git a/dk92_komarenko/README.rst b/dk92_komarenko/README.rst new file mode 100644 index 0000000..81808c5 --- /dev/null +++ b/dk92_komarenko/README.rst @@ -0,0 +1,15 @@ +============================================= +Python course: lab works +============================================= + +Author +----- + +* **Full name:** Komarenko Dmytro +* **Organization/University:** `National Technical University of Ukraine +"Igor Sikorsky Kyiv Polytechnic Institute" `__ +* **Department:** `The Department of Design of Electronic Computing Equipment `__ +* **Telegram:** `@dmk0704 `__ +* **Email:** `dmk0704@gmail.com `__ + + diff --git a/mkr1/DK-92_Komarenko_Dmytro_Olehovych.rst b/mkr1/DK-92_Komarenko_Dmytro_Olehovych.rst index cf7d88a..4e2bb63 100644 --- a/mkr1/DK-92_Komarenko_Dmytro_Olehovych.rst +++ b/mkr1/DK-92_Komarenko_Dmytro_Olehovych.rst @@ -2,17 +2,37 @@ Комаренко Дмитро Олегович ============================== - #. Що таке Git та для чого використовується? Як створити новий локальний репозиторій Git? Наведіть команди. + - Git- це розподілена система керування версіями файлів та спільної роботи. + ~ mkdir projects + ~ cd projects + ~ git init #. Який формат опису повідомлень комітів використовується в курсі? Навіщо потрібно дотримуватися певного формату? Наведіть приклад команди, що додає до репозиторію коміт з важливими виправленнями кодової бази + - #. Список (list) та кортеж (tuple). Для чого використовуються? В чому їх схожості та відмінності? Наведіть приклади коду. + - Список - це складний тип даних в мові програмування Python, який може зберігати різні типи даних і може змінювати елементи, щойно створені. + Кортеж - це складний тип даних в мові програмування Python, який може зберігати різні типи даних і не може змінювати елементи, щойно створені. + І List, і Tuple використовуються для зберігання набору елементів у Python. + Індекс списку та кортежу починається з нуля. + Кожен елемент відокремлений комою у списку та кортежі. + І List, і Tuple можуть мати різні типи елементів. + Список може містити вкладений список, а кортеж може містити вкладений кортеж. + І List, і Tuple підтримують негативну індексацію. + Змінюваність + Список можна змінити. Він може бути змінений, коли він створений. Кортеж незмінний. Його не можна змінити, коли створено. + Охоплюючі елементи + Елементи списку укладаються у квадратні дужки. Елементи кортежу укладені в дужки. + Швидкість + Ітерація через елементи у списку не є швидкою, як у кортежі. #. Наведіть код для створення списку, що містить в якості елементів цілочисленні значення від 1 до 19 (включно) з кроком 1, тобто 1, 3, 5, 7, 9, 11, 13, 15, 17, 19. У відповіді вирішальне значення має оптимальність конструкції. #. Що таке she-bang та для чого використовується? Який she-bang буде максимально коректним для Python 3? Чи використовується she-bang в скриптах? Якщо так, чому? Якщо ні, коли? + - Шебанг - послідовність із двох символів: «решітки» та знака оклику (#!), яка ставиться на початку файлу (текстового), написаного на скриптовій мові. + максимально коректний для Python 3: #!/usr/bin/env python3 #. Аргументи функцій. Яким чином задати значення аргументу за замовчуванням? Коли це не спрацює? Наведіть приклади (пов'язані з галуззю електроніки, наприклад, розрахунок за формулою).