форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.8 KiB
2.8 KiB
Контрольное задание по теме 7
Филиппов Даниил Юрьевич, А-01-23, Вариант - 10
Задание
Разработать функцию c 3 аргументами, реализующую запись заданной последовательности – списка или кортежа (аргумент функции) в текстовый файл с заданным именем (аргумент функции) с заданным числом (аргумент функции) элементов на строке файла, разделенных запятыми. Проверьте её на записи в файл кортежа с 50 случайными, нормально распределенными числами с математическим ожиданием 23 и дисперсией 144 по 3 элемента в строке.
Решение
>>> import os
>>> os.chdir('C:\\Users\\danii\\Desktop\\FilippovDY\\python-labs\\TEMA7')
>>> import random
>>> def write_to_file (objects, file, elements):
... """Запись последовательности списка или кортежа в текстовый файл с заданным числом элементов на строке"""
... with open (file, 'w') as f:
... for i in range (0, len(objects), elements):
... line=objects[i:i+elements]
... f.write(','.join(str(x) for x in line) + '\n')
>>> numbers = [random.gauss(23,144) for x in range(50)] # Для списка
>>> write_to_file(numbers, 'data.txt',3)
Создан файл data.txt, в который записан результат выполнения функции
>>> numbers = tuple(random.gauss(23,144) for x in range(50)) # Для кортежа
>>> write_to_file(numbers, 'data.txt',3)
Содержание файла data.txt:
170.9512892035493,59.05767187405712,-11.578897560470786
75.0538924130538,32.90675132951128,-108.98071224446133
-103.0006471924173,37.03633165905255,258.4576262561138
200.36489495468084,134.55933941113102,321.97175773140754
-40.9802814372241,-44.45241933068485,-87.25081592383818
-202.46840556958045,-158.1036812439846,-142.5974691277703
-45.47883847726145,-87.69643946873211,-69.07297691388123
65.75868855751635,297.92647292603823,1.925615520155791
238.841748364953,117.21525745651961,310.07156895187336
153.75492523186114,-52.39284859909215,126.63355222396544
-96.73634829545176,36.87705896926644,-13.867762120876996
43.64318135060253,-15.417582465964031,499.83587707904417
104.70636421852093,95.93733879942093,78.97940929862436
229.33823815187003,128.67180663451114,69.27679496091582
-218.901545406869,-89.1212752344017,32.02218755542884
99.84796024971544,-134.3407263257664,1.774640942163252
59.25449896678385,-39.43662130459634