форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
62 строки
3.5 KiB
Markdown
62 строки
3.5 KiB
Markdown
# Тест по модулю 2
|
|
|
|
Сарайкина Вера, А-02-23
|
|
|
|
## Задание
|
|
|
|
M2_10
|
|
1) Создайте словарь с 3 элементами: ключи - OTDEL, SOTRUD, DOLZHN, значения - списки, соответственно отделов предприятия (3-4 отдела с наименованиями вида "Отдел1":), список сотрудников (3-4 фамилии), список должностей сотрудников.
|
|
|
|
2) Запросите у пользователя и введите 3 целых числа: номер отдела по списку, порядковый номер сотрудника по списку, порядковый номер должности. Проверьте соответствие введенных чисел числу соответствующих элементов списков. При отсутствии соответствия повторить ввод.
|
|
|
|
3) Выведите на экран сообщение по шаблону: " Отдел: <название отдела из списка>, сотрудник: <ФИО сотрудника из списка>, должность: <название должности из списка> в соответствии с выбором пользователя и со значениями из словаря.
|
|
|
|
4) Запишите это же сообщение в текстовый файл с некоторым именем в режиме добавления строки.
|
|
|
|
5) Удалите из памяти все созданные объекты-переменные.
|
|
|
|
|
|
## Выполнение
|
|
```py
|
|
# 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
|
|
```
|
|
## Вывод
|
|
```py
|
|
Введите номер отдела (1-3): 2
|
|
Введите номер сотрудника (1-3): 3
|
|
Введите номер должности (1-3): 1
|
|
Отдел: Отдел маркетинга, сотрудник: Сидоров С.С., должность: Инженер
|
|
``` |