форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
68 строки
3.8 KiB
Markdown
68 строки
3.8 KiB
Markdown
# Индивидуальное контрольное задание
|
|
|
|
## Задание:
|
|
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 "<pyshell#73>", line 1, in <module>
|
|
print(slovar)
|
|
NameError: name 'slovar' is not defined
|
|
``` |