форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
2.9 KiB
2.9 KiB
Индивидуальное контрольное задание по теме 8
Ефремов Станислав, А-02-23
Задание
Разработайте функцию c 3 аргументами, реализующую запись заданной последовательности – списка или кортежа (аргумент функции) в текстовый файл с заданным именем (аргумент функции) с заданным числом (аргумент функции) элементов на строке файла, разделенных запятыми. Проверьте её на записи в файл кортежа с 50 случайными, нормально распределенными числами с математическим ожиданием 23 и дисперсией 144 по 3 элемента в строке.
Решение
Модуль 1
def write_sequence(sequence, filename, per_line):
with open(filename, 'w', encoding='utf-8') as f:
for i in range(0, len(sequence), per_line):
line = ','.join(str(sequence[j]) for j in range(i, min(i + per_line, len(sequence))))
f.write(line + '\n')
print(f"Данные записаны в файл '{filename}'")
Модуль 2
import random
import MOD1test as wsm
def generate_test_data():
random.seed(42)
data = [random.gauss(23, 12) for _ in range(50)]
return data
def main():
data = generate_test_data()
filename = "sequence_output.txt"
elements_per_line = 3
wsm.write_sequence(data, filename, elements_per_line)
print(f"Сгенерировано {len(data)} чисел.")
print(f"50 чисел: {data[:50]}")
if __name__ == "__main__":
main()
Результат
Данные записаны в файл 'sequence_output.txt'
Сгенерировано 50 чисел.
50 чисел: [21.27091604506486, 20.925156796021767, 21.66420966118805, 31.423804701186356, 21.468940594605357, 5.03175902790851, 26.987820128812583, 19.79195025803398, 20.39649579025766, 24.39061744041026, 25.78757284288065, 36.96270423918972, 30.879638081584027, 24.326086129325983, 14.140140771862153, 10.824051590147395, 25.956106342534422, 38.732969926448575, 23.499882366840605, 21.72412047475059, 29.38131464481043, 5.557456423895864, 19.252672194265283, 28.884350391122297, 33.480852624553364, 20.112443928138376, 27.51919830425492, 25.978561391940975, 32.387921704443706, 9.641333429021927, 29.819008251024627, 4.825755299298322, -8.439345066626224, 15.717311261605968, 12.010279443848063, 33.512146916676876, 30.97119079535474, 8.371103104451656, 33.168337080176, 10.973566109091802, 21.96507384396459, 19.473202664521615, 24.373038289531056, 32.823635738525205, 30.660965489509323, 27.198621222430504, 30.799377173675584, 28.74190445180142, 15.476174417364803, 14.39154687420107]