From 0cb3072d7c7188f6a1d2c70085fa415d92c93d68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=90=D0=BD?= =?UTF-8?q?=D1=82=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 9 Nov 2025 00:38:36 +0300 Subject: [PATCH] done --- TEMA6/fig1.png | Bin 0 -> 12874 bytes TEMA6/report.md | 268 ++++++++++++++++++++++++++++++++++++++++++++++++ TEMA6/task.md | 42 ++++++++ TEMA6/test.md | 48 +++++++++ 4 files changed, 358 insertions(+) create mode 100644 TEMA6/fig1.png create mode 100644 TEMA6/report.md create mode 100644 TEMA6/task.md create mode 100644 TEMA6/test.md diff --git a/TEMA6/fig1.png b/TEMA6/fig1.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c5f1e746f00905459dc2aa2676c7a1c0ce7920 GIT binary patch literal 12874 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 TyX$N^0Q`}WP!z8cH4grNdqU}` literal 0 HcmV?d00001 diff --git a/TEMA6/report.md b/TEMA6/report.md new file mode 100644 index 0000000..1f287d4 --- /dev/null +++ b/TEMA6/report.md @@ -0,0 +1,268 @@ +# Отчет по теме 6 + +**Антонов Дмитрий, А-03-23** + +### 1.Начало работы, настройка текущего каталога +```py +import os +os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA6//') +``` + +### 2.Вывод данных на экран дисплея +#### 2.1 Эхо-вывод +```py +stroka='Автоматизированная система управления' +stroka +'Автоматизированная система управления' +``` + +#### 2.2 print вывод +```py +fff=234.5;gg='Значение температуры = ' +print(gg, fff) #Можно вывести несколько объектов за одно обращение к функции +Значение температуры = 234.5 +print(gg, fff, sep='/') +Значение температуры = /234.5 +print(gg, fff,sep='/',end='***'); print('____') +Значение температуры = /234.5***____ +print() +print(""" Здесь может выводиться +большой текст, +занимающий несколько строк""") + Здесь может выводиться +большой текст, +занимающий несколько строк +print("Здесь может выводиться", + "большой текст,", + "занимающий несколько строк") +Здесь может выводиться большой текст, занимающий несколько строк +``` +#### 2.3 Стандартный поток вывода, модуль sys +```py +import sys +sys.stdout.write('Функция write') +Функция write13 +sys.stdout.write('Функция write\n') +Функция write +14 +help(sys.stdout.write) +Help on method write in module idlelib.run: + +write(s) method of idlelib.run.StdOutputFile instance + Write string s to stream. + + Return the number of characters written + (which is always equal to the length of the string). +``` +### 3. Ввод c клавиатуры +```py +psw=input('Введите пароль:') +Введите пароль:555550 +psw +'555550' +type(psw) + +while True: + znach=float(input('Задайте коэф.усиления = ')) + if znach<17.5 or znach>23.8: + print('Ошибка!') + else: + break + +Задайте коэф.усиления = 15.4 +Ошибка! +Задайте коэф.усиления = 21.6 +import math +print(eval(input('введите выражение для расчета = '))) +введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) +1.34504378689765 +``` +### 4.Ввод-вывод при работе с файлами +#### 4.1 Функции для работы с путем к файлу +- Настройка текущей директории +```py +import os +os.getcwd() +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6' +Antonov = os.getcwd() +print(Antonov) +/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6 +os.getcwd() +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6' +``` +- Пробую методы вложенного модуля path +```py +os.listdir() +['.DS_Store', 'hm', 'report.md', '.gitkeep'] +os.path.isdir('/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6') +True +os.path.isdir('python-labs/TEMA6') +False +os.path.abspath('report.md') +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6/report.md' +file = os.path.abspath('report.md') +drkt=os.path.dirname(file) +drkt +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6' +os.path.basename(file) +'report.md' +os.path.split(file) +('/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6', 'report.md') +os.path.exists(file) +True +os.path.exists(file+'eee') +False +``` +#### 4.3 Открытие/закрытие файла, функция open/close +```py +help(open) +fp=open(file=drkt+'//zapis1.txt',mode='w') +drkt +'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6' +dir(fp) +['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'reconfigure', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'write_through', 'writelines'] +fp.close() +``` +#### 4.4 Запись в файл функция write +```py +sps=list(range(1,13)) +fp2=open('zapis3.txt','w') +fp2.write(str(sps[:4])+'\n');fp2.write(str(sps[4:8])+'\n');fp2.write(str(sps[8:])+'\n');fp2.close() +13 +13 +16 +``` +[!Данные записанные в файл](fig1.png) +- Запись списка списков +```py +sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]] +fp3=open('zapis4.txt','w') + +for i in range(len(sps3)): + stroka4=sps3[i][0]+' '+str(sps3[i][1]) + fp3.write(stroka4) +11 +11 +12 +fp3.close() + +gh=open('zapis5.txt','w') +for r in sps3: + gh.write(r[0]+' '+str(r[1])+'\n') +12 +12 +13 +gh.close() +``` +#### 4.5 Чтение информации из текстового файла. +```py +sps1=[];fp=open('zapis3.txt') +for stroka in fp: + stroka=stroka.rstrip('\n') + stroka=stroka.replace('[','') + stroka=stroka.replace(']','') + sps1=sps1+stroka.split(',') + +fp.close() +print(sps1) +['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] +``` +- Теперь элементы списков совпадают +```py +for i in range(len(sps1)): + sps1[i] = int(sps1[i]) +sps1==sps +True +``` +#### 4.6 Чтение информации из файла с помощью метода read +```py +fp=open('zapis3.txt');stroka1=fp.read(12);stroka2=fp.read();fp.close() +stroka1 +'[1, 2, 3, 4]' +stroka2 +'\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n' +``` +- Изучение функции readline и readlines +```py +fp=open('zapis3.txt');stroka1=fp.readline() +stroka1 +'[1, 2, 3, 4]\n' + +stroka2=fp.readline(3) +stroka2 +'[5,' +fp.close() + +fp=open('zapis3.txt');stroka1=fp.readlines() +stroka1 +['[1, 2, 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n'] +fp.close() +``` +#### 4.9 Ввод-вывод объектов с использованием функций из модуля pickle +```py +import pickle +mnoz1={'pen','book','pen','iPhone','table','book'} +fp=open('zapis6.mnz','wb') +pickle.dump(mnoz1,fp) +fp.close() + +fp=open('zapis6.mnz','rb') +mnoz2=pickle.load(fp) +fp.close() +``` +- Проверка объектов на совпадение +```py +mnoz2 == mnoz1 +True +``` +- Отличие от исходного в том, что сохранились только уникальные элементы +```py +mnoz2 +{'table', 'book', 'iPhone', 'pen'} +mnoz1 +{'table', 'book', 'iPhone', 'pen'} +``` +- Запись/чтение нескольких объектов +```py +sps3 +[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +fp=open('zapis7.2ob','wb') +pickle.dump(mnoz1,fp);pickle.dump(sps3,fp);fp.close() +fp=open('zapis7.2ob','rb') +obj1=pickle.load(fp) +obj2=pickle.load(fp) +fp.close() +obj1,obj2 +({'table', 'book', 'iPhone', 'pen'}, [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]]) +obj1==mnoz1; obj2==sps3 +True +True +``` +### 5. Перенаправление потоков ввода и вывода данных +- Перенаправление вывода в файл +```py +import sys +vr_out=sys.stdout +fc=open('Stroka.txt','w') +sys.stdout=fc +print('запись строки в файл') +sys.stdout=vr_out +print('запись строки на экран') +запись строки на экран +fc.close() +``` +- Перенаправление вввода из файла +```py +tmp_in = sys.stdin +fd = open("Stroka.txt", "r") +sys.stdin = fd +while True: + try: + line = input () + print(line) + except EOFError: + break +запись строки в файл +fd.close() +sys.stdin=tmp_in +``` \ No newline at end of file diff --git a/TEMA6/task.md b/TEMA6/task.md new file mode 100644 index 0000000..195d9c7 --- /dev/null +++ b/TEMA6/task.md @@ -0,0 +1,42 @@ +# Общее контрольное задание по теме 6 + +**Антонов Дмитрий, А-03-23** +1. Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, пред-ставленными в виде символьных строк. +```py +import random as rn +kort = tuple(str(rn.randint(6,56)) for _ in range(126)) +kort +('29', '20', '18', '11', '20', '38', '8', '15', '33', '28', '30', '24', '50', '15', '26', '13', '36', '38', '10', '23', '36', '34', '16', '30', '34', '55', '28', '34', '36', '16', '6', '14', '15', '51', '7', '14', '10', '12', '54', '16', '53', '16', '39', '39', '32', '53', '43', '27', '8', '38', '8', '30', '31', '31', '22', '40', '40', '42', '18', '23', '20', '14', '48', '56', '27', '39', '10', '6', '47', '51', '26', '42', '54', '38', '49', '24', '21', '43', '40', '36', '50', '41', '43', '23', '34', '26', '21', '54', '35', '27', '10', '32', '53', '40', '39', '38', '6', '51', '37', '41', '39', '26', '46', '6', '13', '22', '26', '24', '20', '11', '34', '29', '27', '17', '23', '36', '25', '17', '25', '6', '55', '24', '52', '17', '48', '40') +``` +2. Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников. +```py +spis = ['Антонов','Ефимова','Турханов','Девятова','Гордиевских'] +``` +3. Записывается кортеж и список в бинарный файл. +```py +import pickle +fp=open('task.bn','wb') +pickle.dump(kort,fp) +pickle.dump(spis,fp) +fp.close() +fp=open('task.bn','rb') +obj1=pickle.load(fp) +obj2=pickle.load(fp) +fp.close() +obj1 == kort; obj2 == spis +True +True +obj1 +('29', '20', '18', '11', '20', '38', '8', '15', '33', '28', '30', '24', '50', '15', '26', '13', '36', '38', '10', '23', '36', '34', '16', '30', '34', '55', '28', '34', '36', '16', '6', '14', '15', '51', '7', '14', '10', '12', '54', '16', '53', '16', '39', '39', '32', '53', '43', '27', '8', '38', '8', '30', '31', '31', '22', '40', '40', '42', '18', '23', '20', '14', '48', '56', '27', '39', '10', '6', '47', '51', '26', '42', '54', '38', '49', '24', '21', '43', '40', '36', '50', '41', '43', '23', '34', '26', '21', '54', '35', '27', '10', '32', '53', '40', '39', '38', '6', '51', '37', '41', '39', '26', '46', '6', '13', '22', '26', '24', '20', '11', '34', '29', '27', '17', '23', '36', '25', '17', '25', '6', '55', '24', '52', '17', '48', '40') +obj2 +['Антонов', 'Ефимова', 'Турханов', 'Девятова', 'Гордиевских'] +if(obj1 == kort and obj2 == spis): + print("Объекты схожи") +Объекты схожи +``` +4. Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами. +```py +vocab = {} +for i in range(0,len(kort),5): + vocab['группа №'+str(i//5)] = list(kort[i:i+5]) +``` \ No newline at end of file diff --git a/TEMA6/test.md b/TEMA6/test.md new file mode 100644 index 0000000..0a44543 --- /dev/null +++ b/TEMA6/test.md @@ -0,0 +1,48 @@ +# Индивидуальное контрольное задание по теме 6 + +**Антонов Дмитрий, А-03-23** + +## Задание M2_8 + +1) Создайте множество с 40 элементами - случайными числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки. +```py +import os +os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA6//') +import random as rn +my_set = set(round(rn.uniform(-20,10),2) for _ in range(40)) +my_set +{0.41, 2.22, 3.89, 4.77, 5.04, 6.94, 7.43, 8.16, 9.13, 9.48, 9.85, 6.01, 9.2, -3.82, -19.36, -18.72, -15.84, -9.36, -9.5, -8.1, -4.59, -19.23, -4.49, -4.15, -16.02, -4.74, -16.5, -13.96, -12.95, -11.92, -10.71, -9.89, -8.66, -7.45, -6.18, -5.86, -4.62, -3.52, -2.95, -1.4} +type(my_set) + +``` +2) Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки. +```py +name = input("Введите имя бинарного файла для сохранения множества: ").replace(" ","") +Введите имя бинарного файла для сохранения множества: NA ME +name +'NAME' +``` +3) Запишите множество в бинарный файл с указанным именем. +```py +import pickle +fl = open(name+"bn",'wb') +pickle.dump(my_set,fl) +fl.close() +``` +4) Удалите из памяти созданное множество. +```py +del(my_set) +``` +5) Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки. +```py +fl = open(name+"bn",'rb') +file_set = pickle.load(fl) +file_set +{0.41, 2.22, 3.89, 4.77, 5.04, 6.94, 7.43, 8.16, 9.13, 9.48, 9.85, 6.01, 9.2, -7.45, -4.62, -3.52, -9.36, -9.89, -8.66, -6.18, -4.49, -19.36, -18.72, -19.23, -4.15, -15.84, -16.02, -4.74, -16.5, -13.96, -12.95, -9.5, -8.1, -11.92, -10.71, -5.86, -4.59, -3.82, -2.95, -1.4} +import numpy +mn = numpy.mean(list(file_set)) +mn +np.float64(-4.2989999999999995) +print("По {} среднее = {} ".format(len(file_set),round(mn,2))) +По 40 среднее = -4.30 +``` \ No newline at end of file