main
Solovyova_ED 4 недель назад
Родитель 01e890f9a7
Сommit 92fe7209c5

@ -1,318 +1,216 @@
\# Отчёт по теме 6
# Отчёт по теме 6
Соловьёва Екатерина А-01-23
\## 1 вывод данных на экран дисплея
\### 1.1 Вывод в командной строке
## 1 Запуск интерактивной оболочки IDLE
```py
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA6')
```
## 2 вывод данных на экран дисплея
## 2.1 Вывод в командной строке
>>> stroka='Автоматизированная система управления'
>>> stroka
```py
stroka='Автоматизированная система управления'
stroka
'Автоматизированная система управления'
```
## 2.2 Вывод с использованием функции print
\### 1.2 Вывод с использованием функции print
Вывод информации на экран. Можно испоьзовать и в теле функции и в командной строке
Вывод информации на экран. Можно использовать и в теле функции и в командной строке
```py
>>> fff=234.5;gg='Значение температуры = '
>>> print(gg, fff)
fff=234.5;gg='Значение температуры = '
print(gg, fff)
Значение температуры = 234.5
print(gg, fff,sep='/',end='***'); print('____')
Значение температуры = /234.5***____
print()
>>> print(gg, fff, sep='/')
Значение температуры = /234.5
>>> print(gg, fff,sep='/',end='\*\*\*'); print('\_\_\_\_')
Значение температуры = /234.5\*\*\*\_\_\_\_
>>> print()
>>> print(""" Здесь может выводиться
  большой текст,
  занимающий несколько строк""")
 Здесь может выводиться
print(""" Здесь может выводиться
большой текст,
занимающий несколько строк""")
Здесь может выводиться
большой текст,
занимающий несколько строк
print("Здесь может выводиться",
"большой текст,",
"занимающий несколько строк")
>>> print("Здесь может выводиться",
  "Большой текст",
  "Занимающий несколько строк")
Здесь может выводиться Большой текст Занимающий несколько строк
Здесь может выводиться большой текст, занимающий несколько строк
```
* Тройные кавычки сохраняют структуру многострочного текста
\### 1.3 Вывод с использованием метода write объекта sys.stdout
## 2.3 Вывод с использованием метода write объекта sys.stdout
```py
>>> sys.stdout.write('Функция write')
import sys
sys.stdout.write('Функция write')
Функция write13
>>> sys.stdout.write('Функция write\\n')
sys.stdout.write('Функция write\n')
Функция write
14
```
\## 2 Ввод данных с клавиатуры
## 2 Ввод данных с клавиатуры
```py
>>> psw=input('Введите пароль:')
Введите пароль:a
>>> psw
'a'
>>> type(psw)
Введите пароль:1234
print(psw)
1234
type(psw)
<class 'str'>
>>> while True:
>>> znach=float(input('Задайте коэф.усиления = '))
>>> if znach<17.5 or znach>23.8:
>>> print('Ошибка!')
>>> else:
>>> break
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('введите выражение для расчета = ')))
print(znach)
21.6
import math
print(eval(input('введите выражение для расчета = ')))
введите выражение для расчета = math.log10(23/(1+math.exp(-3.24)))
1.34504378689765
```
\## 3 Ввод-вывод при работе с файлами
## 4 Ввод-вывод при работе с файлами
\### 3.1 Функции для работы с путем к файлу
## 4.1 Функции для работы с путем к файлу
```py
>>> import os
>>>solovyova=os.getcwd()
>>>solovyova
'C:\\\\Users\\\\Ekaterina\\\\OneDrive\\\\Desktop\\\\Solovyova\\\\python-labs\\\\TEMA6'
>>> os.mkdir('a')
>>> os.rmdir('a')
>>> os.listdir()
\['.gitkeep', 'report.md']
>>> fil=os.path.abspath("text.txt")
>>> fil
'L:\\\\III курс\\\\А-3-23\\\\Korneev\\\\text.txt'
>>> drkt=os.path.dirname(fil)
>>> drkt
'L:\\\\III курс\\\\А-3-23\\\\Korneev'
>>> os.path.basename(fil)
'text.txt'
>>> os.path.split(fil)
('L:\\\\III курс\\\\А-3-23\\\\Korneev', 'text.txt')
>>> os.path.exists(fil)
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA6')
solovyova=os.getcwd()#показывает какой рабочий каталог установлен в текущий момент времени
print(solovyova)
C:\Users\Ekaterina\OneDrive\Desktop\Solovyova\python-labs\TEMA6
os.mkdir('a')#cоздает новую директорию
os.listdir()#возвращает список имён всех файлов и папок в указанной директории
['.gitkeep', 'a', 'report.md', 'task.md']
os.path.isdir('a')#проверяет, является ли указанный путь директорией, возвращает True, если путь существует и является директорией
True
>>> os.path.exists('L:\\\\III курс\\\\А-3-23\\\\Korneev\\\\hello.txt')
os.rmdir('a')#удаляет директорию
os.listdir()
['.gitkeep', 'report.md', 'task.md']
fil=os.path.abspath("oplata.dbf")
print(fil)
C:\Users\Ekaterina\OneDrive\Desktop\Solovyova\python-labs\TEMA6\oplata.dbf
fil2=os.path.abspath("report.md")
print(fil2)
C:\Users\Ekaterina\OneDrive\Desktop\Solovyova\python-labs\TEMA6\report.md
drkt=os.path.dirname(fil) #функция os.path.dirname(fil) возвращает директорию (папку) из указанного пути, убирая последний компонент (обычно имя файла)
print(drkt)
C:\Users\Ekaterina\OneDrive\Desktop\Solovyova\python-labs\TEMA6
os.path.basename(fil)
'oplata.dbf'
os.path.split(fil)
('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA6', 'oplata.dbf')
os.path.exists("report.md")
True
os.path.isfile('TEMA6')
False
>>> os.path.isfile(fil)
os.path.isfile(fil)#проверяет наличие файла в рабочем каталоге
True
os.path.isfile(os.path.dirname(fil)+'fil1.txt')#проверяет, что по указанному пути существует файл
False
```
\### 3.2 Открытие файла для записи или чтения данных
## 4.2. Общая схема работы с файлом
Для обмена данными с файлом необходимо выполнить следующие операции:
* Открытие файла с указанием его имени и цели (чтение, запись, добавление данных);
* Выполнение одной или нескольких операций обмена данными с файлом;
* Закрытие файла.
## 4.3. Открытие файла для записи или чтения данных – функция open.
```py
>>> fp=open('zapis1.txt','w')
>>> type()
<class '\_io.TextIOWrapper'>
>>> 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()
fp=open('zapis1.txt','w')
type(fp);dir(fp)
<class '_io.TextIOWrapper'>
['_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']
```
\### 3.3 Запись информации в файл с помощью метода write
Для второго аргумента «mode=…» могут быть заданы следующие значения:
w – запись с созданием нового файла или перезапись существующего файла,
w+ - чтение и запись/перезапись файла,
r – только чтение (это значение - по умолчанию),
r+ - чтение и/или запись в существующий файл,
a – запись в конец существующего файла или, если его нет, запись с созданием файла,
a+ - то же, что и в «a», но с возможностью чтения из файла.
В зависимости от значения этого аргумента тип создаваемой файловой переменной может быть разным.
При открытии бинарного файла к указанным выше буквам в аргументе-цели надо добавить сим-вол «b».
```py
fp1=open(drkt+'\\zapis2.bin',mode='wb+')
type(fp1)
<class '_io.BufferedRandom'>
```
>>> sps=list(range(1,13))
>>> fp2=open('zapis3.txt','w')
>>> fp2.write(str(sps\[:4])+'\\n')
>>> fp2.write(str(sps\[4:8])+'\\n')
## 4.4. Закрытие файла.
```py
fp.close();fp1.close()
```
>>> fp2.write(str(sps\[8:])+'\\n')
## 4.5 Запись информации в файл с помощью метода write
>>> fp2.close()
```py
sps = list(range(1,13))
fp2=open('zapis3.txt','w')
fp2.write(str(sps[:4])+'\n')
13
fp2.write(str(sps[4:8])+'\n')
13
fp2.write(str(sps[8:])+'\n')
16
fp2.close()
```
Содержимое файла приведено ниже
```txt
\[1, 2, 3, 4]
\[5, 6, 7, 8]
\[9, 10, 11, 12]
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]
```
Запись списка в файл
Попытка 1
```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()
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()
```
Содержимое текстового файла:
```txt
Иванов И. 1Петров П. 2Сидоров С. 3
```
Попытка 2
```py
>>> gh=open('zapis5.txt','w')
>>> for r in sps3:
>>> gh.write(r\[0]+' '+str(r\[1])+'\\n')
>>> gh.close()
gh = open('zapis5.txt','w')
for r in sps3:
gh.write(r[0]+' '+str(r[1])+'\n')
```
@ -320,119 +218,61 @@ True
Содержимое текстового файла:
```txt
Иванов И. 1
Петров П. 2
Сидоров С. 3
```
\### 3.4 Первый способ чтения информации из текстового файла
## 4.6 Первый способ чтения информации из текстового файла
```py
>>> gh.close()
>>> 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']
>>> sps1=\[]
>>> fp=open('zapis3.txt')
>>> for stroka in fp:
>>> stroka=stroka.rstrip('\\n')
>>> stroka=stroka.replace('\[','')
>>> stroka=stroka.replace(']','')
>>> stroka=stroka.replace(' ','')
>>> sps1=sps1 + list(map(int, stroka.split(',')))
>>> fp.close()
>>> sps1
\[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
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']
print(sps)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
```
\### 3.5 Чтение информации из файла с помощью методов read и readline
## 4.7 Чтение информации из файла с помощью методов readline и readlines
```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'
>>> fp=open('zapis3.txt')
>>> stroka3=fp.readline()
>>> stroka4=fp.readlines()
>>> fp.close()
>>> stroka3
'\[1, 2, 3, 4]\\n'
>>> stroka4
\['\[5, 6, 7, 8]\\n', '\[9, 10, 11, 12]\\n']
fp = open('zapis3.txt', 'r')
line1 = fp.readline() # читает 1ую строку
line2 = fp.readline() # читает 2ую строку
line3 = fp.readline() # читает 3ую строку
print("readline():")
print("Строка 1:", repr(line1))
print("Строка 2:", repr(line2))
print("Строка 3:", repr(line3))
fp.close()
readline():
Строка 1: '[1, 2, 3, 4]\n'
Строка 2: '[5, 6, 7, 8]\n'
Строка 3: '[9, 10, 11, 12]\n'
fp = open('zapis3.txt', 'r')
lines = fp.readlines() # читает ВСЕ строки в список
print("readlines():", lines)
fp.close()
readlines(): ['[1, 2, 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n']
```
\### 3.6 Ввод-вывод объектов с использованием функций из модуля pickle
## 4.8 Ввод-вывод объектов с использованием функций из модуля pickle
```py
@ -506,7 +346,7 @@ True
\## 4 Перенаправление потоков ввода и вывода данных
## 4.9 Перенаправление потоков ввода и вывода данных

Загрузка…
Отмена
Сохранить