# Индивидуальное контрольное задание по Теме 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](KORT.mnz) и [SPIS.txt](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 "", line 1, in spis NameError: name 'spis' is not defined kort Traceback (most recent call last): File "", line 1, in kort NameError: name 'kort' is not defined ``` Чтение данных из файла [SPIS.txt](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](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() ```