3.5 KiB
Тест по модулю 2
Сарайкина Вера, А-02-23
Задание
M2_10
-
Создайте словарь с 3 элементами: ключи - OTDEL, SOTRUD, DOLZHN, значения - списки, соответственно отделов предприятия (3-4 отдела с наименованиями вида "Отдел1":), список сотрудников (3-4 фамилии), список должностей сотрудников.
-
Запросите у пользователя и введите 3 целых числа: номер отдела по списку, порядковый номер сотрудника по списку, порядковый номер должности. Проверьте соответствие введенных чисел числу соответствующих элементов списков. При отсутствии соответствия повторить ввод.
-
Выведите на экран сообщение по шаблону: " Отдел: <название отдела из списка>, сотрудник: <ФИО сотрудника из списка>, должность: <название должности из списка> в соответствии с выбором пользователя и со значениями из словаря.
-
Запишите это же сообщение в текстовый файл с некоторым именем в режиме добавления строки.
-
Удалите из памяти все созданные объекты-переменные.
Выполнение
# 1) Создание словаря
data = {
'OTDEL': ['Отдел разработки', 'Отдел маркетинга', 'Отдел продаж'],
'SOTRUD': ['Иванов И.И.', 'Петров П.П.', 'Сидоров С.С.'],
'DOLZHN': ['Инженер', 'Менеджер', 'Аналитик']
}
# 2) Ввод данных с проверкой
while True:
try:
# Ввод с проверкой преобразования в целое число
n_otdel = int(input("Введите номер отдела (1-3): "))
n_sotrud = int(input("Введите номер сотрудника (1-3): "))
n_dolzhn = int(input("Введите номер должности (1-3): "))
# Проверка диапазона (только базовые операции)
if n_otdel >= 1 and n_otdel <= 3 and n_sotrud >= 1 and n_sotrud <= 3 and n_dolzhn >= 1 and n_dolzhn <= 3:
break
else:
print("Ошибка: числа должны быть в диапазоне 1-3")
except:
print("Ошибка: введите целые числа")
# 3) Формирование и вывод сообщения
message = "Отдел: " + data['OTDEL'][n_otdel-1] + ", сотрудник: " + data['SOTRUD'][n_sotrud-1] + ", должность: " + data['DOLZHN'][n_dolzhn-1]
print(message)
# 4) Запись в файл
fp = open('report.txt', 'a')
fp.write(message + '\n')
fp.close()
# 5) Очистка памяти
del data, n_otdel, n_sotrud, n_dolzhn, message, fp
Вывод
Введите номер отдела (1-3): 2
Введите номер сотрудника (1-3): 3
Введите номер должности (1-3): 1
Отдел: Отдел маркетинга, сотрудник: Сидоров С.С., должность: Инженер