ответвлено от main/python-labs
report:добавлен
Этот коммит содержится в:
Двоичные данные
TEMA6/stud.txt
Двоичные данные
TEMA6/stud.txt
Двоичный файл не отображается.
83
TEMA6/test6.md
Обычный файл
83
TEMA6/test6.md
Обычный файл
@@ -0,0 +1,83 @@
|
||||
# Индивидуальное контрольное задание по Теме 6
|
||||
|
||||
|
||||
# Задание
|
||||
1) Создайте словарь с 10 элементами: ключи - фамилии студентов, значения - целые, случайные числа в диапазоне от 1 до 100.
|
||||
|
||||
|
||||
2) Запишите словарь в бинарный файл.
|
||||
|
||||
|
||||
3) Удалите словарь из памяти.
|
||||
|
||||
|
||||
4) Прочитайте словарь из файла и удалите из него два элемента: первого и последнего студента.
|
||||
|
||||
|
||||
5) Выведите на экран элементы полученного словаря в виде строк по шаблону: "Студент <ключ из словаря> : <значение из словаря>"
|
||||
|
||||
|
||||
# Решение
|
||||
```
|
||||
import random
|
||||
import pickle
|
||||
```
|
||||
|
||||
## 1
|
||||
```
|
||||
students = {"Лазарев": random.randint(1, 100),"Анисенков": random.randint(1, 100),"Филлипова": random.randint(1, 100),"Филлипов": random.randint(1, 100),"Жалнин": random.randint(1, 100),"Махнов": random.randint(1, 100),"Лыкова": random.randint(1, 100),"Терехов": random.randint(1, 100),"Голощапов": random.randint(1, 100),"Мельников": random.randint(1, 100)}
|
||||
pri`nt("Исходный словарь")
|
||||
for stud, zeloe in students.items():
|
||||
print(f"Студент {stud} - {zeloe}")
|
||||
```
|
||||
## 2
|
||||
```
|
||||
with open('stud.txt', 'wb') as f:
|
||||
pickle.dump(students, f)
|
||||
```
|
||||
## 3
|
||||
```
|
||||
del students
|
||||
```
|
||||
## 4
|
||||
```
|
||||
with open('stud.txt', 'rb') as f:
|
||||
students = pickle.load(f)
|
||||
if students:
|
||||
keys = list(students.keys())
|
||||
students.pop(keys[0])
|
||||
students.pop(keys[-1])
|
||||
```
|
||||
## 5
|
||||
```
|
||||
print("Новый словарь")
|
||||
for stud, zeloe in students.items():
|
||||
print(f"Студент {stud} : {zeloe}")
|
||||
```
|
||||
|
||||
Итог:
|
||||
```
|
||||
Исходный словарь
|
||||
|
||||
Студент Лазарев - 70
|
||||
Студент Анисенков - 22
|
||||
Студент Филлипова - 38
|
||||
Студент Филлипов - 28
|
||||
Студент Жалнин - 21
|
||||
Студент Махнов - 56
|
||||
Студент Лыкова - 29
|
||||
Студент Терехов - 10
|
||||
Студент Голощапов - 39
|
||||
Студент Мельников - 91
|
||||
|
||||
Новый словарь
|
||||
|
||||
Студент Анисенков : 22
|
||||
Студент Филлипова : 38
|
||||
Студент Филлипов : 28
|
||||
Студент Жалнин : 21
|
||||
Студент Махнов : 56
|
||||
Студент Лыкова : 29
|
||||
Студент Терехов : 10
|
||||
Студент Голощапов : 39
|
||||
```
|
||||
@@ -4,7 +4,6 @@ def alpha():
|
||||
return t
|
||||
|
||||
def beta(q):
|
||||
print('****BETA****')
|
||||
import math
|
||||
expi=q*math.pi
|
||||
return math.exp(expi)
|
||||
|
||||
@@ -315,6 +315,34 @@ beta(6)
|
||||
>> 153552935.39544657
|
||||
```
|
||||
### 3.3.2. Отобразить на экране в модуле Mod0 значения объектов t и expi
|
||||
Содержание модуля Mod0:
|
||||
```
|
||||
import Mod1
|
||||
print('perm1=',Mod1.perm1)
|
||||
from Mod2 import alpha as al
|
||||
tt=al()
|
||||
print('tt=',tt)
|
||||
from Mod2 import beta
|
||||
qq=beta(float(tt))
|
||||
print('qq=',qq)
|
||||
print(t, expi)
|
||||
```
|
||||
Запуск программы:
|
||||
```
|
||||
import Mod0
|
||||
>> Mod1:Введите значение = 5
|
||||
>> Mod1:Значение perm1= 5
|
||||
>> perm1= 5
|
||||
>> ****ALPHA****
|
||||
>> Значение t=10
|
||||
>> tt= 10
|
||||
>> qq= 44031505860631.98
|
||||
>> Traceback (most recent call last):
|
||||
File "C:\Users\Dannyan\OneDrive\Рабочий стол\python-labs\TEMA8\Mod0.py", line 10, in <module>
|
||||
print(t, expi)
|
||||
NameError: name 't' is not defined. Did you mean: 'tt'?
|
||||
```
|
||||
При выполнении программы, а именно при попытке вывода переменных t,expi в модуле Mod0 возникает ошибка. Это происходит в силу того, что переменные t,expi не определены в данном модуле. Переменная t является локальной переменной функции alpha(), аналогично expi - локальная переменная функции beta()
|
||||
### 3.3.3. Попробуйте в модуле Mod0 увеличить в 3 раза значение объекта perm1 и отобразить его после этого на экране
|
||||
Изменим модуль Mod0:
|
||||
```
|
||||
|
||||
@@ -314,6 +314,34 @@ beta(6)
|
||||
>> 153552935.39544657
|
||||
```
|
||||
### 3.3.2. Отобразить на экране в модуле Mod0 значения объектов t и expi
|
||||
Содержание модуля Mod0:
|
||||
```
|
||||
import Mod1
|
||||
print('perm1=',Mod1.perm1)
|
||||
from Mod2 import alpha as al
|
||||
tt=al()
|
||||
print('tt=',tt)
|
||||
from Mod2 import beta
|
||||
qq=beta(float(tt))
|
||||
print('qq=',qq)
|
||||
print(t, expi)
|
||||
```
|
||||
Запуск программы:
|
||||
```
|
||||
import Mod0
|
||||
>> Mod1:Введите значение = 5
|
||||
>> Mod1:Значение perm1= 5
|
||||
>> perm1= 5
|
||||
>> ****ALPHA****
|
||||
>> Значение t=10
|
||||
>> tt= 10
|
||||
>> qq= 44031505860631.98
|
||||
>> Traceback (most recent call last):
|
||||
File "C:\Users\Dannyan\OneDrive\Рабочий стол\python-labs\TEMA8\Mod0.py", line 10, in <module>
|
||||
print(t, expi)
|
||||
NameError: name 't' is not defined. Did you mean: 'tt'?
|
||||
```
|
||||
При выполнении программы, а именно при попытке вывода переменных t,expi в модуле Mod0 возникает ошибка. Это происходит в силу того, что переменные t,expi не определены в данном модуле. Переменная t является локальной переменной функции alpha(), аналогично expi - локальная переменная функции beta()
|
||||
### 3.3.3. Попробуйте в модуле Mod0 увеличить в 3 раза значение объекта perm1 и отобразить его после этого на экране
|
||||
Изменим модуль Mod0:
|
||||
```
|
||||
|
||||
Ссылка в новой задаче
Block a user