Сравнить коммиты

...

2 Коммитов

Автор SHA1 Сообщение Дата
SaraikinaVK 703026b561 dfghj
1 месяц назад
SaraikinaVK 5f9e298be4 done
1 месяц назад

@ -0,0 +1,268 @@
# Отчет по теме 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()
'/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
```

@ -0,0 +1,63 @@
# Общее контрольное задание по теме 6
Сарайкина Вера, А-02-23
## Задание
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
1. Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
2. Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
3. Записывается кортеж в бинарный файл.
4. Записывается в этот же файл список и закрывается файл.
5. Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
6. Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
7. Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
## Выполнение
1. Создание кортежа
```py
import random
tup1=[]
for i in range(125): tup1.append(str(random.randint(6, 56)))
tup1=tuple(tup1); tup1
('46', '21', '28', '45', '35', '15', '42', '20', '20', '31', '32', '23', '25', '56', '16', '42', '11', '44', '15', '7', '41', '27', '27', '54', '51', '15', '20', '48', '52', '15', '38', '17', '19', '56', '22', '33', '16', '53', '19', '11', '31', '10', '7', '6', '15', '16', '20', '28', '44', '26', '24', '51', '16', '17', '38', '31', '28', '26', '25', '43', '16', '23', '34', '48', '33', '53', '26', '33', '38', '29', '8', '36', '49', '53', '49', '13', '51', '13', '49', '46', '35', '13', '12', '48', '25', '56', '50', '30', '6', '56', '9', '11', '16', '38', '33', '7', '16', '10', '47', '32', '43', '38', '10', '7', '12', '35', '22', '35', '12', '39', '15', '32', '27', '42', '52', '20', '51', '10', '22', '49', '26', '6', '12', '49', '22')
```
2-4. Создание списка, запись кортежа и списка в бинарный файл, чтение обоих объектов из файла
```py
sps1=['Похил', 'Сарайкина', 'Цветкова', 'Шинкаренко', 'Снегура']
import pickle
fp=open('fil.mnz', 'wb')
pickle.dump(tup1, fp)
pickle.dump(sps1, fp)
fp.close()
fp=open('fil.mnz', 'rb')
tup2=pickle.load(fp)
sps2=pickle.load(fp)
fp.close()
```
5. Проверка на совпадение объектов
```py
print('Кортежи совпадают') if tup1 == tup2 else print('Кортежи не совпадают')
Кортежи совпадают
print('Списки совпадают') if sps1 == sps2 else print('Списки не совпадают')
Списки совпадают
```
6. Разделение кортежа на списки по 5 чисел, представленных в строковом виде.
```py
for i in range(0, len(tup1), 5):
exec('spisk' + str(i//5+1) + '=' + str(list(tup1[i:i+5])))
spisk1
['46', '21', '28', '45', '35']
spisk2
['15', '42', '20', '20', '31']
spisk3
['32', '23', '25', '56', '16']
```
Загрузка…
Отмена
Сохранить