# Индивидуальное контрольное задание по теме 8 ## Задание: Разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов. Разработайте функцию c 3 аргументами, реализующую запись заданной последовательности – списка или кортежа (аргумент функции) в текстовый файл с заданным именем (аргумент функции) с заданным числом (аргумент функции) элементов на строке файла, разделенных запятыми. Проверьте её на записи в файл кортежа с 50 случайными, нормально распределенными числами с математическим ожиданием 23 и дисперсией 144 по 3 элемента в строке. ## Решение: - Модуль с функцией: ``` >>>def write_to_file(data, filename, per_line): try: with open(filename, 'w') as f: for i in range(0, len(data), per_line): # Берем часть данных part = data[i:i + per_line] # Преобразуем в строку через запятую line = ','.join(str(x) for x in part) # Записываем строку f.write(line + '\n') print(f"Данные записаны в файл '{filename}'") return True except Exception as e: print(f"Ошибка: {e}") return False ``` - Модуль с проверкой работы функции: ``` >>>import random >>>import math >>>import Mod1_test >>>def generate_numbers(): numbers = [] mean = 23 std = 12 for _ in range(50): r = sum(random.random() for _ in range(12)) - 6 number = mean + std * r numbers.append(round(number, 4)) return tuple(numbers) >>>def main(): print("=== Тест записи в файл ===") print("Генерирую 50 чисел...") data = generate_numbers() print(f"Первые 5 чисел: {data[:5]}") print(f"Всего чисел: {len(data)}") filename = "result.txt" per_line = 3 success = Mod1_test.write_to_file(data, filename, per_line) if success: print(f"\nФайл '{filename}' создан!") print("Содержимое файла:") print("-" * 30) with open(filename, 'r') as f: for line in f: print(line.strip()) print("-" * 30) >>>if __name__ == "__main__": main() ```