Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

4.0 KiB

Индивидуальное контрольное задание по Теме 6

Ходюк Максим Романович, А-01-23

Задание, Вариант 12

M2_12

  1. Создайте список с 25 случайными элементами, подчиняющимися нормальному распределению с математическим ожиданием -6.7 и стандартным отклонением 1.23. Округлите значения элементов до 3-х знаков после точки.

  2. Из элементов списка с нечетными индексами сформируйте кортеж и запишите его в бинарный файл. Остальные элементы запишите в текстовый файл по одному числу на строке.

  3. Удалите из памяти список и кортеж.

  4. Прочитайте числа из текстового файла с записью их в список. Рассчитайте сумму элементов списка. Отобразите результат расчета по шаблону: " Сумма элементов списка=<значение> единиц". Выводите значение с точностью до одного знака после точки.

  5. Запишите это же сообщение в текстовый файл с именем, совпадающим с именем бинарного файла, и с расширением ТХТ.

Выполнение

Создание списка:

import random
spis=[]
for i in range(25):
    spis.append(round(random.gauss(mu=-6.7,sigma=1.23),3))

    
spis
[-6.301, -8.251, -8.685, -5.54, -4.592, -5.929, -7.139, -5.715, -5.445, -9.013, -7.428, -6.661, -7.014, -5.691, -5.985, -5.061, -5.544, -5.526, -7.975, -7.513, -4.388, -8.961, -4.993, -6.828, -4.873]

Создание кортежа:

kort=()
SpisToKort= []
for i in range(1,25,2):
    SpisToKort.append(spis[i])

    
kort = tuple(SpisToKort)
kort
(-8.251, -5.54, -5.929, -5.715, -9.013, -6.661, -5.691, -5.061, -5.526, -7.513, -8.961, -6.828)

Запись в файлы KORT.mnz и SPIS.txt необходимых данных:

import os
os.chdir('D:\\POAS\\Hodyuk\\TEMA6\\')

fpK=open('KORT.mnz','wb+')
import pickle
pickle.dump(kort,fpK)
fpK.close()
fpS=open('SPIS.txt','w')
for i in range(0,25,2):
    fpS.write(str(spis[i])+'\n')

    
7
7
7
7
7
7
7
7
7
7
7
7
7
fpS.close()

Удаление списка и кортежа из памяти и проверка наличия:

del spis
del kort
spis
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    spis
NameError: name 'spis' is not defined
kort
Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    kort
NameError: name 'kort' is not defined

Чтение данных из файла SPIS.txt

fpS=open('SPIS.txt','r')
for i in range(0,25,2):
    chislo= fpS.readline()
    chislo=chislo.rstrip('\n')
    chislo=float(chislo)
    NewSpis.append(chislo)

    
NewSpis
[-6.301, -8.685, -4.592, -7.139, -5.445, -7.428, -7.014, -5.985, -5.544, -7.975, -4.388, -4.993, -4.873]

fpS.close()

Вычисление суммы элементов списка и вывод сообщения с округлением суммы до 1 знака после запятой

summa=sum(NewSpis)
summa
-80.362

print(f'Сумма элементов списка = {round(summa,1)} единиц')
Сумма элементов списка = -80.4 единиц

Вывод того же сообщения в файл KORT.txt

fp = open('KORT.txt','w')
import sys
vr_out=sys.stdout
sys.stdout=fp
print(f'Сумма элементов списка = {round(summa,1)} единиц')
sys.stdout=vr_out
fp.close()