Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

268 строки
8.2 KiB
Markdown

# Отчет по теме 6
**Сарайкина Вера, А-02-23**
### 1.Начало работы, настройка текущего каталога
```py
import os
os.chdir('C:\Users\Yarik\Desktop\labi\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)
<class 'str'>
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()
'C:\Users\Yarik\Desktop\labi\python-labs\TEMA6'
Vera = os.getcwd()
print(Vera)
'C:\Users\Yarik\Desktop\labi\python-labs\TEMA6'
os.getcwd()
'C:\Users\Yarik\Desktop\labi\python-labs\TEMA6'
```
- Пробую методы вложенного модуля path
```py
os.listdir()
['.DS_Store', 'hm', 'report.md', '.gitkeep']
os.path.isdir('C:\Users\Yarik\Desktop\labi\python-labs\TEMA6')
True
os.path.isdir('python-labs/TEMA6')
False
os.path.abspath('report.md')
'C:\Users\Yarik\Desktop\labi\python-labs\TEMA6/report.md'
file = os.path.abspath('report.md')
drkt=os.path.dirname(file)
drkt
'C:\Users\Yarik\Desktop\labi\python-labs\TEMA6'
os.path.basename(file)
'report.md'
os.path.split(file)
('C:\Users\Yarik\Desktop\labi\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
'C:\Users\Yarik\Desktop\labi\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
```