From a4b5016d5fa63d177b898e777e5fbe1e9b46d181 Mon Sep 17 00:00:00 2001 From: VatariShin Date: Fri, 7 Nov 2025 11:03:39 +0300 Subject: [PATCH] done lab6 --- TEMA6/Stroka.txt | 1 + TEMA6/bin_task.bin | Bin 0 -> 59 bytes TEMA6/report.md | 239 +++++++++++++++++++++++++++++++++++++++++++++ TEMA6/task.md | 20 ++++ TEMA6/task.py | 20 ++++ TEMA6/zapis1.txt | 0 TEMA6/zapis2.bin | 0 TEMA6/zapis3.txt | 3 + TEMA6/zapis4.txt | 1 + TEMA6/zapis5.txt | 3 + TEMA6/zapis6.mnz | Bin 0 -> 46 bytes TEMA6/zapis7.2ob | Bin 0 -> 139 bytes 12 files changed, 287 insertions(+) create mode 100644 TEMA6/Stroka.txt create mode 100644 TEMA6/bin_task.bin create mode 100644 TEMA6/report.md create mode 100644 TEMA6/task.md create mode 100644 TEMA6/task.py create mode 100644 TEMA6/zapis1.txt create mode 100644 TEMA6/zapis2.bin create mode 100644 TEMA6/zapis3.txt create mode 100644 TEMA6/zapis4.txt create mode 100644 TEMA6/zapis5.txt create mode 100644 TEMA6/zapis6.mnz create mode 100644 TEMA6/zapis7.2ob diff --git a/TEMA6/Stroka.txt b/TEMA6/Stroka.txt new file mode 100644 index 0000000..a804c17 --- /dev/null +++ b/TEMA6/Stroka.txt @@ -0,0 +1 @@ +запись строки в файл diff --git a/TEMA6/bin_task.bin b/TEMA6/bin_task.bin new file mode 100644 index 0000000000000000000000000000000000000000..ecf8d4e8981e987c9cd2919ec664c82c74969306 GIT binary patch literal 59 zcmZo*(bQ{TnX1D80kKmwdN{rF%Mx=^^Rn}&^sss4r<7J^0~wxWiFx^DK!$H(28fZW F2LSf16Jh`W literal 0 HcmV?d00001 diff --git a/TEMA6/report.md b/TEMA6/report.md new file mode 100644 index 0000000..fdaca5c --- /dev/null +++ b/TEMA6/report.md @@ -0,0 +1,239 @@ +# Отчет по теме 6 + +Коваленко Дмитрий, А-01-23 + +## 6 Ввод-вывод данных и операции с файлами + +### 6.1. Вывод данных на экран дисплея. + +```py +>>> stroka='Автоматизированная система управления' +>>> stroka +'Автоматизированная система управления' +>>> fff=234.5;gg='Значение температуры = ' +``` +#### 6.1.1 функция `print` +```py +>>> print(gg, fff) +Значение температуры = 234.5 +>>> print(gg, fff, sep='/') +Значение температуры = /234.5 +>>> print(gg, fff,sep='/',end='***'); print('____') +Значение температуры = /234.5***____ +>>> print() + +>>> print(""" Здесь может выводиться +... большой текст, +... занимающий несколько строк""") + Здесь может выводиться +большой текст, +занимающий несколько строк +>>> print("Здесь может выводиться", +... "большой текст,", +... "занимающий несколько строк") +Здесь может выводиться большой текст, занимающий несколько строк +``` +#### 6.1.2 метод `write` + +```py +import sys +>>> sys.stdout.write('Функция write') +Функция write13 +>>> sys.stdout.write('Функция write\n') +Функция write +14 +``` + +### 6.2 Ввод данных с клавиатуры + +```py +>>> psw=input('Введите пароль:') +Введите пароль:qwerty +>>> psw +'qwerty' +>>> type(psw) + + +>>> while True: + znach=float(input('Задайте коэф.усиления = ')) + if znach<17.5 or znach>23.8: + ... znach=float(input('Задайте коэф.усиления = ')) +... if znach<17.5 or znach>23.8: +... print('Ошибка!') +... else: +... break +... +Задайте коэф.усиления = 1 +Ошибка! +Задайте коэф.усиления = 19 + +>>> import math +>>> print(eval(input('введите выражение для расчета = '))) +введите выражение для расчета = math.log10(23/(1+math.exp(-3.24))) +1.34504378689765 +``` + +### 6.3 Ввод-вывод при работе с файлами + +#### 6.3.1 Функции для работы с путем к файлу +```py +>>> +>>> import os +>>> workPath = os.getcwd() +>>> print(workPath) +'/Users/vatarishin/lab_sem_5/python-labs' +>>> os.chdir('/Users/vatarishin/lab_sem_5/python-labs/TEMA6') +>>> +>>> os.getcwd() +'/Users/vatarishin/lab_sem_5/python-labs/TEMA6' + +>>> fil = os.path.abspath("report.md") +>>> drkt=os.path.dirname() +>>> os.path.basename(fil) +'report.md' +>>> os.path.split(fil) +('/Users/vatarishin/lab_sem_5/python-labs/TEMA6', 'report.md') +>>> os.path.exists('path.md') +False +>>> os.path.isfile('task.md') +False +>>> os.path.isfile('report.md') +True +``` + +#### 6.3.2 Открытие файла для записи или чтения данных – функция `open` + +```py +>>> fp=open('zapis1.txt','w') +>>> type(fp) + +>>> dir(fp) +['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__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'] +``` + +#### 6.3.3. Закрытие файла +```py +>>> fp.close() +>>> +``` + +#### 6.3.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() +``` + +[Созданный файл](zapis3.txt) + +```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) +fp3.close() +``` +[Созданный файл](zapis4.txt) +```py +gh=open('zapis5.txt','w') +for r in sps3: + gh.write(f'{r[0]} {str(r[1])}\n') + +gh.close() +``` + +#### 6.3.5. Первый способ чтения информации из текстового файла. + +```py +>>> sps1=[] +fp=open('zapis3.txt') +sps1=[] +>>> for stroka in fp: +... stroka=stroka.rstrip('\n') +... stroka=stroka.replace('[','') +... stroka=stroka.replace(']','') +... sps1=sps1+stroka.split(',') +... +>>> fp.close() +>>> sps1 +['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12'] +``` + +#### 6.3.6. Чтение информации с помощью методов readline и readlines + +```py +>>> with open('zapis3.txt') as fl: +... print(fl.readline()) +... print(fl.readlines()) +... +[1, 2, 3, 4] + +['[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n'] +``` + +#### 6.3.7 Ввод-вывод объектов с использованием функций из модуля `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() + +>>> mnoz2 +{'pen', 'table', 'iPhone', 'book'} +>>> mnoz1 +{'pen', 'table', 'iPhone', 'book'} +>>> mnoz1 == mnoz2 +True + +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 +{'pen', 'table', 'iPhone', 'book'} +>>> obj2 +[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]] +``` + +### 6.4. Перенаправление потоков ввода и вывода данных + +```py +import sys +vr_out=sys.stdout +fc=open('Stroka.txt','w') +sys.stdout=fc +print('запись строки в файл') +sys.stdout=vr_out +print('запись строки на экран') +fc.close() + +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..7c934b8 --- /dev/null +++ b/TEMA6/task.md @@ -0,0 +1,20 @@ +# Общее контрольное задание по теме 6 + +Коваленко Дмитрий, А-01-23 + +## Задание + +Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:\ +• Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.\ +• Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.\ +• Записывается кортеж в бинарный файл.\ +• Записывается в этот же файл список и закрывается файл.\ +• Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.\ +• Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.\ +• Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами. + + + + +## Решение представлено в файле [task.py](task.py) + diff --git a/TEMA6/task.py b/TEMA6/task.py new file mode 100644 index 0000000..a2440c0 --- /dev/null +++ b/TEMA6/task.py @@ -0,0 +1,20 @@ +from random import randint +from pickle import dump, load +from os import chdir + +chdir('/Users/vatarishin/lab_sem_5/python-labs/TEMA6') +intTuple = () + +for _ in range(125): intTuple + (str(randint(6, 56)), ) + +surnames = ['Kovalenko', 'Hoduyk', 'Ivanov', 'Mahnov'] + +with open('bin_task.bin', mode='wb') as file: + dump(intTuple, file) + dump(surnames, file) + +with open('bin_task.bin', mode='rb') as file: + binObj1 = load(file) + binObj2 = load(file) + +print(f'tuples are indentical: {binObj1 == intTuple}\nlists are indentical: {surnames == binObj2}') \ No newline at end of file diff --git a/TEMA6/zapis1.txt b/TEMA6/zapis1.txt new file mode 100644 index 0000000..e69de29 diff --git a/TEMA6/zapis2.bin b/TEMA6/zapis2.bin new file mode 100644 index 0000000..e69de29 diff --git a/TEMA6/zapis3.txt b/TEMA6/zapis3.txt new file mode 100644 index 0000000..8132aa8 --- /dev/null +++ b/TEMA6/zapis3.txt @@ -0,0 +1,3 @@ +[1, 2, 3, 4] +[5, 6, 7, 8] +[9, 10, 11, 12] diff --git a/TEMA6/zapis4.txt b/TEMA6/zapis4.txt new file mode 100644 index 0000000..b2ba8ec --- /dev/null +++ b/TEMA6/zapis4.txt @@ -0,0 +1 @@ +Иванов И. 1Петров П. 2Сидоров С. 3 \ No newline at end of file diff --git a/TEMA6/zapis5.txt b/TEMA6/zapis5.txt new file mode 100644 index 0000000..f84efdc --- /dev/null +++ b/TEMA6/zapis5.txt @@ -0,0 +1,3 @@ +Иванов И. 1 +Петров П. 2 +Сидоров С. 3 diff --git a/TEMA6/zapis6.mnz b/TEMA6/zapis6.mnz new file mode 100644 index 0000000000000000000000000000000000000000..bb04e29ff7f1ae5656f5500b9552c17703b80a1f GIT binary patch literal 46 wcmZo*nX1eH0sT`ndYB7R^QQE$mLw+Sq)zE!%M8fK&jT`8lJfJjr%ccT05P5qF#rGn literal 0 HcmV?d00001 diff --git a/TEMA6/zapis7.2ob b/TEMA6/zapis7.2ob new file mode 100644 index 0000000000000000000000000000000000000000..cbb3a27b5c759468cf14b6429e4062b455d5f20e GIT binary patch literal 139 zcmZo*nX1eH0sT`ndYB7R^QQE$mLw+Sq)zE!%M8fK&jT`8lJfJjr%cdmV3`^ORUJD; z1BiMAF3h;F>B5E!doS#}uu0*<481AdjHwWb`4_fcY`WM0k(dvZU;;}BU08Tw$Av8y O_Q9kU0;QN!Q}qC2$UKMu literal 0 HcmV?d00001