BushmanovAS 3 недель назад
Родитель 79a37fd2c7
Сommit 0bca4498fc

@ -10,52 +10,56 @@
5) Запишите список, кортеж и словарь в бинарный файл с именем - названием фирмы и расширением '.bin'. 5) Запишите список, кортеж и словарь в бинарный файл с именем - названием фирмы и расширением '.bin'.
## Решение: ## Решение:
```python ```python
import pickle import pickle
familii = ['Ivanov', 'Petrov', 'Sidorov', 'Smirnov', 'Kuznetsov'] familii = ['Ivanov', 'Petrov', 'Sidorov', 'Smirnov', 'Kuznetsov']
okladi = (40000, 45000, 42000, 48000, 50000) okladi = (40000, 45000, 42000, 48000, 50000)
namefirmi= input("Введите название фирмы латиницей: ") namefirmi= input("Введите название фирмы латиницей: ")
namefirmi = namefirmi.replace(' ', '') # убираем пробелы namefirmi = namefirmi.replace(' ', '')
print("Название фирмы (без пробелов):", namefirmi) print("Название фирмы (без пробелов):", namefirmi)
firm_dict = {} exec(namefirmi + " = {}")
i = 0
while i < len(familii): i = 0
fam = familii[i] while i < len(familii):
pay = okladi[i] fam = familii[i]
firmdict[fam] = pay pay = okladi[i]
i = i + 1 exec(namefirmi + "['" + fam + "'] = " + str(pay))
i = i + 1
print("Словарь с данными по сотрудникам:")
print(firmdict) print("Словарь с данными по сотрудникам:")
firm_dict = eval(namefirmi)
print(firm_dict)
summa = 0
j = 0
while j < len(okladi): summa = 0
summa = summa + okladi[j] j = 0
j = j + 1 while j < len(okladi):
summa = summa + okladi[j]
itog = summa / len(okladi) j = j + 1
print("Средний оклад сотрудников фирмы:", itog)
itog = summa / len(okladi)
print("Средний оклад сотрудников фирмы:", itog)
file_name = firm_name + '.bin'
fp = open(namefirmi, 'wb')
pickle.dump(familii, fp) file_name = namefirmi + '.bin'
pickle.dump(okladi, fp) fp = open(namefirmi, 'wb')
pickle.dump(firmdict, fp) pickle.dump(familii, fp)
fp.close() pickle.dump(okladi, fp)
pickle.dump(eval(namefirmi), fp)
fp.close()
print("Данные записаны в файл:", file_name) print("Данные записаны в файл:", file_name)
``` ```
## *Проверка:* ## *Проверка:*
```python ```python
Введите название фирмы латиницей: AO TBank Введите название фирмы латиницей: FDSFSDv
Название фирмы (без пробелов): AOTBank Название фирмы (без пробелов): FDSFSDv
Словарь с данными по сотрудникам: Словарь с данными по сотрудникам:
{'Ivanov': 40000, 'Petrov': 45000, 'Sidorov': 42000, 'Smirnov': 48000, 'Kuznetsov': 50000} {'Ivanov': 40000, 'Petrov': 45000, 'Sidorov': 42000, 'Smirnov': 48000, 'Kuznetsov': 50000}
Средний оклад сотрудников фирмы: 45000.0 Средний оклад сотрудников фирмы: 45000.0
Данные записаны в файл: AOTBank.bin Данные записаны в файл: FDSFSDv.bin
``` ```

Загрузка…
Отмена
Сохранить