форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.7 KiB
2.7 KiB
Индивидуальное контрольное задание
Бушманов Артём, А-01-23
Задание:
- Создайте список с 5 фамилиями сотрудников некоторой фирмы (фамилии придумайте сами). Создайте кортеж с 5 числовыми элементами - окладами сотрудников из списка.
- Запросите у пользователя и введите символьную строку с названием фирмы (латиницей). Удалите из названия пробелы.
- Создайте словарь с именем - названием фирмы, ключами - фамилиями сотрудников из списка и значениями - их окладами из кортежа. Отобразите словарь.
- Рассчитайте среднее значение оклада сотрудников фирмы и отобразите с заголовком.
- Запишите список, кортеж и словарь в бинарный файл с именем - названием фирмы и расширением '.bin'.
Решение:
import pickle
familii = ['Ivanov', 'Petrov', 'Sidorov', 'Smirnov', 'Kuznetsov']
okladi = (40000, 45000, 42000, 48000, 50000)
namefirmi= input("Введите название фирмы латиницей: ")
namefirmi = namefirmi.replace(' ', '')
print("Название фирмы (без пробелов):", namefirmi)
exec(namefirmi + " = {}")
i = 0
while i < len(familii):
fam = familii[i]
pay = okladi[i]
exec(namefirmi + "['" + fam + "'] = " + str(pay))
i = i + 1
print("Словарь с данными по сотрудникам:")
firm_dict = eval(namefirmi)
print(firm_dict)
summa = 0
j = 0
while j < len(okladi):
summa = summa + okladi[j]
j = j + 1
itog = summa / len(okladi)
print("Средний оклад сотрудников фирмы:", itog)
file_name = namefirmi + '.bin'
fp = open(namefirmi, 'wb')
pickle.dump(familii, fp)
pickle.dump(okladi, fp)
pickle.dump(eval(namefirmi), fp)
fp.close()
print("Данные записаны в файл:", file_name)
Проверка:
Введите название фирмы латиницей: FDSFSDv
Название фирмы (без пробелов): FDSFSDv
Словарь с данными по сотрудникам:
{'Ivanov': 40000, 'Petrov': 45000, 'Sidorov': 42000, 'Smirnov': 48000, 'Kuznetsov': 50000}
Средний оклад сотрудников фирмы: 45000.0
Данные записаны в файл: FDSFSDv.bin