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

2.4 KiB

ИКЗ, тема 7 (вариант 10)

Бережков Дмитрий А-01-23

Задание:

  1. Разработайте функцию c 3 аргументами, реализующую запись заданной последовательности – списка или кортежа (аргумент функции) в текстовый файл с заданным именем (аргумент функции) с заданным числом (аргумент функции) элементов на строке файла, разделенных запятыми. Проверьте её на записи в файл кортежа с 50 случайными, нормально распределенными числами с математическим ожиданием 23 и дисперсией 144 по 3 элемента в строке.

Выполнение:

>>> def writef(obj,file,elem):
...     """Запись последовательности списка или кортежа в текстовый файл с заданным числом элементов на строке"""
...     with open (file,'w') as f:
...         for i in range (0, len(obj), elem):
...             line=obj[i:i+elem]
...             f.write(','.join(str(x) for x in line) + '\n')
... 
...             
>>> numbers = [random.gauss(23,144) for x in range(50)]
>>> writef(numbers,'data1.txt',3)

Содержание файла data1.txt:

241.71253896985093,248.0922049180413,63.93243805946962
-2.5613050572585365,-233.7356532046805,-43.71100872873404
-41.49388804453271,-18.877485553159943,-173.17954591286244
-34.188892969567426,269.22621427055026,-23.4777258431589
-150.0402089008563,-138.74013440973553,-44.13484238897196
155.8084571292971,124.18947811800096,-301.857271693554
123.73124009550004,-35.81862040280841,25.20824985373494
41.75645794585994,176.94308189535528,-146.535894889846
-14.5752858782325,244.43818392211853,74.31067862406104
54.861820682068505,140.74882354369083,204.004266081046
-291.65666897188805,-106.89837867764746,166.50068888913614
-38.919945617204526,111.8105712401512,208.76866045851344
105.23012130358175,-47.31240986990848,-86.86012792518429
-163.38008193138268,-90.34734159020095,45.12346410839757
197.16134782865944,-69.11221675096985,54.195564115622666
-42.973125559518735,-124.44829722682891,-89.63808266609591
-5.301952011199695,263.76559727114915