From e0dcc35f2020747f094bea9adb1f4bdb58bce7aa Mon Sep 17 00:00:00 2001 From: MelnikovDM Date: Mon, 10 Nov 2025 11:57:40 +0300 Subject: [PATCH] Add new files --- TEMA6/report.md | 2 +- TEMA6/task.py | 41 ++++++++++++++++++++++++++++ TEMA6/test.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++ TEMA6/zadanie.txt | 1 + 4 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 TEMA6/task.py create mode 100644 TEMA6/test.md create mode 100644 TEMA6/zadanie.txt diff --git a/TEMA6/report.md b/TEMA6/report.md index 1f49525..33fc3e2 100644 --- a/TEMA6/report.md +++ b/TEMA6/report.md @@ -62,7 +62,7 @@ 14 ``` Как видим, в этом методе, в обоих случаях, выводится количество введенных символов. -В этом контексте 14 — это не результат вычисления, а возвращаемое значение функции write, показывающее, сколько символов она успешно вывела. +В этом контексте 14 — это не результат вычисления, а возвращаемое значение функции write в интерактивной консоли, показывающее, сколько символов она успешно вывела. ## 3. Ввод данных с клавиатуры. ``` diff --git a/TEMA6/task.py b/TEMA6/task.py new file mode 100644 index 0000000..d21a432 --- /dev/null +++ b/TEMA6/task.py @@ -0,0 +1,41 @@ +import os +import pickle + +slovar = { + 'OTDEL': ['Производственный отдел', 'Отдел продаж', 'Бухгалтерия', 'IT-отдел'], + 'SOTRUD': ['Иванов И.И.', 'Петров П.П.', 'Сидоров С.С.', 'Кузнецова М.В.'], + 'DOLZHN': ['Инженер', 'Менеджер', 'Бухгалтер', 'Программист'] +} +while True: + otdel_num = int(input("Введите номер отдела (1-4): ")) + sotrud_num = int(input("Введите номер сотрудника (1-4): ")) + dolzhn_num = int(input("Введите номер должности (1-4): ")) + if (1 <= otdel_num <= len(slovar['OTDEL']) and 1 <= sotrud_num <= len(slovar['SOTRUD']) and 1 <= dolzhn_num <= len(slovar['DOLZHN'])): + break + else: + print("Error, try again") + + +while True: + otdel_num = int(input("Введите номер отдела (1-4): ")) + sotrud_num = int(input("Введите номер сотрудника (1-4): ")) + dolzhn_num = int(input("Введите номер должности (1-4): ")) + if (1 <= otdel_num <= len(slovar['OTDEL']) and 1 <= sotrud_num <= len(slovar['SOTRUD']) and 1 <= dolzhn_num <= len(slovar['DOLZHN'])): + break + else: + print("Error, try again") + + +message = "Отдел: {0}, сотрудник: {1}, должность: {2}".format( + slovar['OTDEL'][otdel_num-1], + slovar['SOTRUD'][sotrud_num-1], + slovar['DOLZHN'][dolzhn_num-1] +) +print(message) + +fp = open('zadanie.txt', 'w') +fp.write(str(message+'\n')) +fp.close() + +del slovar, otdel_num, sotrud_num, dolzhn_num, message, fp +print(slovar) diff --git a/TEMA6/test.md b/TEMA6/test.md new file mode 100644 index 0000000..66a58a5 --- /dev/null +++ b/TEMA6/test.md @@ -0,0 +1,68 @@ +# Индивидуальное контрольное задание + +## Задание: +1) Создайте словарь с 3 элементами: ключи - OTDEL, SOTRUD, DOLZHN, значения - списки, соответственно отделов предприятия (3-4 отдела с наименованиями вида "Отдел1":), список сотрудников (3-4 фамилии), список должностей сотрудников. + +2) Запросите у пользователя и введите 3 целых числа: номер отдела по списку, порядковый номер сотрудника по списку, порядковый номер должности. Проверьте соответствие введенных чисел числу соответствующих элементов списков. При отсутствии соответствия повторить ввод. + +3) Выведите на экран сообщение по шаблону: " Отдел: <название отдела из списка>, сотрудник: <ФИО сотрудника из списка>, должность: <название должности из списка> в соответствии с выбором пользователя и со значениями из словаря. + +4) Запишите это же сообщение в текстовый файл с некоторым именем в режиме добавления строки. + +5) Удалите из памяти все созданные объекты-переменные. + +## Решение: +``` +>>>import os +# Создание словаря +>>>slovar = { + 'OTDEL': ['Производственный отдел', 'Отдел продаж', 'Бухгалтерия', 'IT-отдел'], + 'SOTRUD': ['Иванов И.И.', 'Петров П.П.', 'Сидоров С.С.', 'Кузнецова М.В.'], + 'DOLZHN': ['Инженер', 'Менеджер', 'Бухгалтер', 'Программист'] +} +# Ввод данных с проверкой +>>>while True: + otdel_num = int(input("Введите номер отдела (1-4): ")) + sotrud_num = int(input("Введите номер сотрудника (1-4): ")) + dolzhn_num = int(input("Введите номер должности (1-4): ")) + if (1 <= otdel_num <= len(slovar['OTDEL']) and 1 <= sotrud_num <= len(slovar['SOTRUD']) and 1 <= dolzhn_num <= len(slovar['DOLZHN'])): + break + else: + print("Error, try again") + + +Введите номер отдела (1-4): 5 +Введите номер сотрудника (1-4): 5 +Введите номер должности (1-4): 5 +Error, try again +Введите номер отдела (1-4): 3 +Введите номер сотрудника (1-4): 3 +Введите номер должности (1-4): 3 + +# Вывод сообшения +>>>message = "Отдел: {0}, сотрудник: {1}, должность: {2}".format( + slovar['OTDEL'][otdel_num-1], + slovar['SOTRUD'][sotrud_num-1], + slovar['DOLZHN'][dolzhn_num-1] +) +>>>print(message) +Отдел: Бухгалтерия, сотрудник: Сидоров С.С., должность: Бухгалтер + +# Запись сообщения в файл +>>>fp = open('zadanie.txt', 'w') +>>>fp.write(str(message+'\n')) +66 +>>>fp.close() +>>>fp = open('zadanie.txt', 'r') # Доп. проверка +>>>fp.read() +'Отдел: Бухгалтерия, сотрудник: Сидоров С.С., должность: Бухгалтер\n' +>>>fp.close() + +# Удаление из памяти +>>>del slovar, otdel_num, sotrud_num, dolzhn_num, message, fp +>>>print(slovar) +Traceback (most recent call last): + File "", line 1, in + print(slovar) +NameError: name 'slovar' is not defined +``` \ No newline at end of file diff --git a/TEMA6/zadanie.txt b/TEMA6/zadanie.txt new file mode 100644 index 0000000..f4d0292 --- /dev/null +++ b/TEMA6/zadanie.txt @@ -0,0 +1 @@ +: , : .., :