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

4.0 KiB

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

Киреев Юрий, А-02-23

Задание

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

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

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

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

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

Решение

spis = [random.gauss(-6.7, 1.23) for x in range (25)]
spis
[-8.197422212335816, -7.574367979195539, -8.248648207136844, -7.990453691933484, -8.141501641096257, -7.111273654678145, -6.6380516003931955, -6.734311101253375, -5.507975900785041, -4.813987359682213, -6.6568452400014575, -7.279373137542832, -5.705746481082025, -6.065087925371984, -6.074781438709197, -8.005257284310325, -5.318432003003645, -5.823830096595744, -6.163595205510788, -6.757022447462937, -6.1214339340545685, -6.946666806710584, -3.947016222853067, -6.938975871006476, -5.221201460094965]
for i in range(len(spis)):
    spis[i] = round(spis[i], 3)

spis
[-8.197, -7.574, -8.249, -7.99, -8.142, -7.111, -6.638, -6.734, -5.508, -4.814, -6.657, -7.279, -5.706, -6.065, -6.075, -8.005, -5.318, -5.824, -6.164, -6.757, -6.121, -6.947, -3.947, -6.939, -5.221]
kort = tuple(spis[i] for i in range(len(spis)) if i%2 == 1)
kort
(-7.574, -7.99, -7.111, -6.734, -4.814, -7.279, -6.065, -8.005, -5.824, -6.757, -6.947, -6.939)
import os
os.chdir('C:\\Users\\u522-13\\Desktop\\zad')
import pickle
with open('zapis.kor','wb') as fp:
    pickle.dump(kort,fp)
#Содержимое файла:
Ђp       (§пќІхВЏ\(цGАq©ызlпќІ-VGАA7KЖЁGАІ-V\(хГGА Џ\(хГGА§пќІ+IєGАЙє^5?}Б7KЖЁt.
with open ('zapis2.txt','w') as fp:
    for i in range (len(spis)):
        if (i%2 == 0):
            fp.write(str(spis[i]) + '\n')
#Содержимое файла
-8.197
-8.249
-8.142
-6.638
-5.508
-6.657
-5.706
-6.075
-5.318
-6.164
-6.121
-3.947
-5.221
del spis, kort
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'fp', 'i', 'os', 'pickle', 'random']
with open('zapis2.txt') as fp:
    for stroka in fp:
        stroka = stroka.rstrip()
        spis.append(float(stroka))
spis
[-8.197, -8.249, -8.142, -6.638, -5.508, -6.657, -5.706, -6.075, -5.318, -6.164, -6.121, -3.947, -5.221]
print ("Сумма элементов списка =",(round(sum(spis), 1)),"единиц")
Сумма элементов списка = -81.9 единиц
message = f"Сумма элементов списка = {(round(sum(spis), 1))} единиц"
message
'Сумма элементов списка = -81.9 единиц'

with open('zapis.txt','w') as fp:
    fp.write(message)

37
#Содержимое файла
Сумма элементов списка = -81.9 единиц