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

..

62 Коммитов

Автор SHA1 Сообщение Дата
904c529a6a Изменил(а) на 'TEMA6/task.md' 2025-11-18 20:41:38 +00:00
9f438f0c3f Изменил(а) на 'TEMA6/report.md' 2025-11-17 23:04:35 +00:00
0acd8eca56 Изменил(а) на 'TEMA6/task.md' 2025-11-17 22:41:56 +00:00
070afacc25 Изменил(а) на 'TEMA6/task.md' 2025-11-17 22:39:39 +00:00
Solovyova_ED
9a1487d23c Добавлен отчёт и задание 2025-11-18 01:38:16 +03:00
Solovyova_ED
7a9d11dc03 Добавлен отчёт 2025-11-17 22:05:43 +03:00
99d71545b2 Изменил(а) на 'TEMA6/report.md' 2025-11-17 18:54:05 +00:00
Solovyova_ED
92fe7209c5 Добавлен отчёт 2025-11-17 21:45:21 +03:00
01e890f9a7 Изменил(а) на 'TEMA5/test.md' 2025-11-10 09:40:38 +00:00
f68396ef62 Изменил(а) на 'TEMA5/test.md' 2025-11-10 09:39:26 +00:00
223df5311c Изменил(а) на 'TEMA5/test.md' 2025-11-10 09:39:10 +00:00
ae0545d076 Изменил(а) на 'TEMA5/test.md' 2025-11-10 09:38:35 +00:00
25b33b82fa Изменил(а) на 'TEMA5/test.md' 2025-11-10 09:37:48 +00:00
Solovyova_ED
aef32df298 done 2025-11-10 12:36:39 +03:00
Solovyova_ED
fd1ec88905 done 2025-11-10 12:35:06 +03:00
Solovyova_ED
256e4b2f89 done 2025-11-10 12:03:43 +03:00
Solovyova_ED
20464e35f9 done 2025-11-10 12:01:02 +03:00
81ab61157d Изменил(а) на 'TEMA5/report.md' 2025-11-10 08:22:49 +00:00
Solovyova_ED
1197efdeed Добавлен отчёт TEMA5 2025-11-09 04:46:26 +03:00
Solovyova_ED
4a5d4f7b45 Тест 2025-10-23 20:15:05 +03:00
Solovyova_ED
b192e92172 Тест 2025-10-23 20:13:56 +03:00
e52c4b70f0 Изменил(а) на 'TEMA4/report.md' 2025-10-13 08:39:36 +00:00
790a48dcd3 Изменил(а) на 'TEMA4/report.md' 2025-10-13 08:39:02 +00:00
16926feb0b Изменил(а) на 'TEMA4/report.md' 2025-10-13 08:37:57 +00:00
162ea67264 Изменил(а) на 'TEMA4/report.md' 2025-10-13 08:28:29 +00:00
Solovyova_ED
67ae0ecda4 done 2025-10-13 01:19:49 +03:00
Solovyova_ED
0f10c748af done 2025-10-13 01:02:18 +03:00
Solovyova_ED
d986456727 done 2025-10-12 21:30:23 +03:00
Solovyova_ED
cef70ce455 done 2025-10-12 21:28:29 +03:00
Solovyova_ED
b4e003ddbe done 2025-10-12 21:27:20 +03:00
Solovyova_ED
fd4335c0d4 done 2025-10-12 21:23:01 +03:00
130598660c Изменил(а) на 'TEMA3/test.md' 2025-09-29 09:46:57 +00:00
Solovyova_ED
74a29b8912 Добавлен протокол и обновлены отчеты 2025-09-29 12:43:47 +03:00
e42f3c2e39 Изменил(а) на 'TEMA3/task.md' 2025-09-29 09:12:17 +00:00
Solovyova_ED
61dfe83e17 Добавлен протокол и обновлены отчеты 2025-09-29 12:01:38 +03:00
Solovyova_ED
33daa4f793 Добавлен протокол 2025-09-29 10:17:52 +03:00
Solovyova_ED
cac315d9a9 Добавлен отчёт TEMA3 2025-09-29 10:17:07 +03:00
Solovyova_ED
b2a3ae24b0 Добавлено индивидуальное контрольное задание 2025-09-26 10:33:05 +03:00
Solovyova_ED
8cec55308f Добавлено общее контрольное задание 2025-09-26 10:15:24 +03:00
Solovyova_ED
e08228c63f Добавлен отчёт TEMA2 2025-09-26 10:14:45 +03:00
Solovyova_ED
6d3f9684e5 Добавлен отчёт TEMA2 2025-09-26 01:27:26 +03:00
Solovyova_ED
804438a73a Добавлен отчёт TEMA2 2025-09-25 02:33:49 +03:00
Solovyova_ED
fccfccd885 Добавлен отчёт TEMA2 2025-09-25 02:32:38 +03:00
Solovyova_ED
b34e919b8e Добавлен отчёт TEMA2 2025-09-25 02:30:48 +03:00
Solovyova_ED
4efd7b8454 Добавлен отчёт TEMA2 2025-09-25 02:28:37 +03:00
Solovyova_ED
5b980b733c Добавлен отчёт TEMA2 2025-09-25 02:22:22 +03:00
Solovyova_ED
d685642ffd Добавлен отчёт TEMA2 2025-09-25 02:19:02 +03:00
1120f71918 Изменил(а) на 'TEMA1/test.md' 2025-09-15 09:37:39 +00:00
Solovyova_ED
bdd62bf317 doc: добавлен отчёт 2025-09-15 12:37:02 +03:00
Solovyova_ED
c51b0a827c общее контрольное задание 2025-09-15 12:37:02 +03:00
9f0f21dad4 Изменил(а) на 'TEMA1/report.md' 2025-09-15 09:07:40 +00:00
842040832b Изменил(а) на 'TEMA1/report.md' 2025-09-15 09:06:31 +00:00
dd14642c28 Изменил(а) на 'TEMA1/report.md' 2025-09-15 09:04:10 +00:00
Solovyova_ED
5c86ca4621 doc: добавлен отчёт 2025-09-15 11:13:55 +03:00
Solovyova_ED
d375cfef3e doc: добавила отчёт 2025-09-15 03:08:36 +03:00
Solovyova_ED
b6c0980016 doc: добавила отчёт 2025-09-15 02:36:47 +03:00
Solovyova_ED
f738cffd36 doc: добавлен отчёт 2025-09-14 23:47:59 +03:00
Solovyova_ED
74f887a9be doc: добавлен отчёт 2025-09-14 23:44:19 +03:00
Solovyova_ED
d8e5855613 doc: добавлен отчёт 2025-09-14 23:40:27 +03:00
Solovyova_ED
a53b72fb75 doc: добавлен отчёт 2025-09-14 23:38:12 +03:00
Solovyova_ED
2f9c29fd77 doc: добавлен отчёт 2025-09-14 22:55:25 +03:00
Solovyova_ED
0deb1460b1 Добавлена программа по Теме 1 2025-09-14 22:46:02 +03:00
47 изменённых файлов: 3666 добавлений и 7 удалений

Просмотреть файл

@@ -1,7 +1,6 @@
# Программное обеспечение автоматизированных систем: лабораторные работы
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/python)
Обратите внимание на файл с комментариями в репозитории по ссылке.
## Работа с Git
@@ -87,7 +86,7 @@
## 1.1 Настройка текущего каталога
```py
```
>>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd()
@@ -110,7 +109,7 @@
### Оформление решений
Решение всех заданий и тестов оформляется по образцу:
Решение всех заданий оформляется по образцу:
# Общее контрольное задание по теме 2
@@ -130,8 +129,5 @@
Для темы 1 вместо «Задания» — «Вопрос», вместо «Решения» — «Ответ».
Для тем 3, 6 и 9 вместо «Индивидуального контрольного задания по теме 3 (6, 9)» —
«Тест по модулю 1 (2, 3)».
Для тем 8 и 9 раздела «Решение» не нужно,
вместо этого решение размещается в отдельных файлах `*.py`.

Просмотреть файл

@@ -6,7 +6,7 @@
## 1.1 Настройка текущего каталога
```py
```
>>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd()

5
TEMA1/Pr0.py Обычный файл
Просмотреть файл

@@ -0,0 +1,5 @@
#Программа по Теме 1 Соловьёва Е.Д,
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA1')

85
TEMA1/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,85 @@
# Отчет по теме 1
Соловьёва Екатерина, А-01-23
## 1.Создание копии репозитория
```py
$ git clone http://uit.mpei.ru/git/Solovyova_ED/python-labs.git
```
## 1.1 Клонирование форка на рабочий стол, перебазирование личного форка на исходный репозиторий
```py
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git remote add upstream http://uit.mpei.ru/git/main/python-labs.git
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git fetch upstream
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 5), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), 745 bytes | 32.00 KiB/s, done.
From http://uit.mpei.ru/git/main/python-labs
* [new branch] main -> upstream/main
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git stash push
No local changes to save
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git rebase upstream/main
Successfully rebased and updated refs/heads/main.
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git stash pop
No stash entries found.
```
## 2. Запуск Питона
## 2.1. Изучение диалогового окна интерпретатора
```py
print("Hello") Hello
h=input("Your name=") Your name=Katerina
exit()
```
## 3. Ввод интрукций настройки рабочего каталога среды
```py
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\python-labs\\TEMA1')
```
## 4.Создание файла "Программа по теме 1", её запуск
#Программа по Теме 1 Соловьёва Е.Д.
```py
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\python-labs\\TEMA1')
```
## 5. Запуск программы prb1.py из рабочего каталога
## 5.1 Попытка открыть файл Pr0.cpython-311 из каталога pycache.
При попытке открыть файл в текстовом редакторе человек вместо привычных букв увидит странные символы и/или надписи NUL. Так происходит из-за того, что информация записана в двоичном коде. Компиляция программ происходит для преобразования текста в машинный код, оптимизации.
## 6. Создание файла "Протокол по теме 1"
## 6.1 Изучение раздела Help.
В одной строке можно ввести несколько инструкций, разделяя их точками с запятой например:
```py
help(print); help(input)
```
В этом разделе можно найти актуальную информацию про IDLE, по типу версии, обновлений, лицензии. Так же здесь присутствует краткий гайд для использования программы. В наличии так же демо-версия программы TURTLE и справочник по Python. Посмотреть справочную подсистему можно клавишей F1 или с помощью главного меню «Помощь (Help)», в выпадающем меню – «Python Docs»
## 7. Последовательное выполнение действий
открытие файла prb1.py
поочерёдное активирование окон с помощью главного меню
закрытие текстовых редакторов
запуск программы из файла tdemo_chaos.py
просмотр демонстраций результатов программы
завершение работы со средой

6
TEMA1/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,6 @@
# Индивидуальное контрольное задание по теме 1
Соловьёва Екатерина А-01-23
## Задание
Что означает название интерактивной оболочки IDLE?
## Ответ
Integrated Development and Learning Environment (Интегрированная среда разработки и обучения)

188
TEMA2/protocol.py Обычный файл
Просмотреть файл

@@ -0,0 +1,188 @@
#Протокол по Теме 2 Соловьёва Е.Д.
f1=16; f2=3
f1,f2
(16, 3)
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
type(f2)
<class 'int'>
del f1,f2
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
f1=16; f2=3
dir(f2)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
dir(f1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
abs(-2)
2
help(abs),help(len), help(max), help(min), help(pow), help(round), help(sorted), help(sum), help(zip)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more positional arguments, return the largest argument.
Help on built-in function min in module builtins:
min(...)
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its smallest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more positional arguments, return the smallest argument.
Help on built-in function pow in module builtins:
pow(base, exp, mod=None)
Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.
Help on built-in function round in module builtins:
round(number, ndigits=None)
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise
the return value has the same type as the number. ndigits may be negative.
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
Help on built-in function sum in module builtins:
sum(iterable, /, start=0)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
Help on class zip in module builtins:
class zip(object)
| zip(*iterables, strict=False)
|
| The zip object yields n-length tuples, where n is the number of iterables
| passed as positional arguments to zip(). The i-th element in every tuple
| comes from the i-th iterable argument to zip(). This continues until the
| shortest argument is exhausted.
|
| If strict is true and one of the arguments is exhausted before the others,
| raise a ValueError.
|
| >>> list(zip('abcdefg', range(3), range(4)))
| [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
|
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __iter__(self, /)
| Implement iter(self).
|
| __next__(self, /)
| Implement next(self).
|
| __reduce__(self, /)
| Return state information for pickling.
|
| __setstate__(self, object, /)
| Set state information for unpickling.
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs)
| Create and return a new object. See help(type) for accurate signature.
(None, None, None, None, None, None, None, None, None)
Gg1=45
Gg1
45
gg1
1.6
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
ii1=-1234567890
ff1=-8.9876e-12
dv1=0b1101010
type(dv1)
<class 'int'>
vsm1=0o52765
shest1=0x7109af6
cc1=2-3j
a=3.67; b=-0.45
cc2=complex(a,b)
cc2
(3.67-0.45j)
ss1='Это - строка символов'
ss1="Это - строка символов"
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n Соловьёва Е. Д.'
print(ss1b)
Меня зовут:
Соловьёва Е. Д.
ss1b[0:23]
'Меня зовут: \n Соловьёва'
ss1b[14:23:1]
'Соловьёва'
ss1b[3:10]
'я зовут'
ss1b[14:23:2]
'Слвёа'
spis1=[111,'Spisok',5-9j]
stup=[0,0,1,1,1,1,1,1,1]
spis=[1,2,3,4,
5,6,7,
8,9,10]
spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
spis1[-1]
(5-9j)
stup[-8::2]
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]

342
TEMA2/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,342 @@
# Отчёт по теме 2
Соловьёва Екатерина, А-01-23
## 1. Начало работы с оболочкой IDLE.
Установила рабочий каталог, создала текстовый редактор с комментарием и сохранила в рабочий каталог.
```py
import os
os.chdir('C:\\Users\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA2')
```
## 2. Изучение простых конструкций языка Python.
```py
f1=16; f2=3 #Операция присваивания
f1,f2 или f1;f2 #Чтение переменных (можно записать через запятую или точку с запятой)
dir() #просмтор всех объектов
dir(f1) #просмтор атрибутов конкретного объекта
type(f2) #определение классовой принадлежности
del f1,f2 #удаление объектов
```
## 3. Допустимые и недопустимые именования объектов
```py
gg1=1.6 #значение в виде вещественного числа
hh1='Строка' #значение в виде символьной строки
73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
```
## 4. Просмотр ключевых слов
```py
import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
keywords_list = keyword.kwlist #сохранила список в переменной
```
## 5.1 Просмотр встроенных идентификаторов
```py
import builtins
dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
```
## 5.2 Изучение встроенных функций
```py
help(abs),help(len), help(max), help(min), help(pow), help(round), help(sorted), help(sum), help(zip)
```
abs - модуль от числа max/min - вывод максимального/минимального числа для либо списка либо для нескольких перечисленных переменных len - выводит кол-во объектов в контейнере pow - возводит число в степень round - округляет число sum - дает сумму всех элементов в контейнере sorted - сортирует по возрастанию элементы в контейнере zip - "сшивает" значения из одной последовательности значений с соответствующими значениями из другой
Попробую применить каждую из функций:
```py
abs(-2)
2
a=[1,2,3]
len(a)
3
max(a)
3
min(a)
1
print(pow(2, 3)) #возводит 2 в степень 3
8
print(round(3.14159, 2)) #округляет до 2 знаков после запятой, так как я указала
3.14
names = ["Анна", "Борис", "Виктор"]
ages = [25, 30, 35]
print(sorted(names))
['Анна', 'Борис', 'Виктор']
sum(a)
6
zipped = list(zip(names, ages))
print(zipped)
[('Анна', 25), ('Борис', 30), ('Виктор', 35)]
```
## 6. Значимость регистра
При присваивании имен переменным важен также регистр букв.
```py
Gg1=45
Gg1
45
gg1
1.6
```
## 7.Изучение базовых типов объектов
## 7.1 Логический тип
```py
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
```
## 7.2. Другие простые типы
```py
ii1=-1234567890
ff1=-8.9876e-12
dv1=0b1101010
type(dv1)
<class 'int'>
vsm1=0o52765
shest1=0x7109af6
#два способа создания комплексных чисел:
cc1=2-3j
a=3.67; b=-0.45
cc2=complex(a,b)
```
## 7.3. Строка символов
```py
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n Соловьёва Е. Д.'
print(ss1b)
Меня зовут:
Соловьёва Е. Д.
#Многострочные строки можно задавать в виде значения объекта с использованием тройных кавычек, например,
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
```
Можно обращаться к частям строки символов с использованием индексов символов по их порядку в строке. При этом надо учитывать, что нумерация символов начинается с 0. Например,
```py
ss1[0] #Это – символ «Э»
ss1[8] #А это – символ «р»
ss1[-2] #А это – символ «о» (при знаке «-»(минус) отсчет от конца строки)
#Операция «разрезания» или «создания среза», создающая новый объект:
ss1[6:9] #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!)
ss1[13:] #Это часть строки – с 13-го индекса и до конца
ss1[:13] #Это часть строки – с начала и до 12-го индекса включительно
ss1[5:-8] #Это часть строки – с 5-го индекса и до 8-го от конца
ss1[3:17:2] #Часть строки – с 3-го по 16-й индексы с шагом 2
#в срезе указываются не позиции элементов, а их индексы и что указываемая правая граница в срез не включается.
Самостоятельно посмотрите, что получится при отрицательном значении шага:
ss1[17:3:-2]
#при ss1[-4:3:-2] результат такой же
#Строка является неизменяемым объектом!
ss1[4]='=' # Будет диагностика!
#Однако, можно это сделать по-другому, переопределив строку:
ss1=ss1[:4]+'='+ss1[5:]
```
Самостоятельно сделала некоторые срезы
```py
ss1b[0:23]
'Меня зовут: \n Соловьёва'
ss1b[14:23:1]
'Соловьёва'
ss1b[3:10]
'я зовут'
ss1b[14:23:2]
'Слвёа'
```
## 8. Сложные типы объектов.
## 8.1 Список
```py
spis1=[111,'Spisok',5-9j] #Пример списка с 3 элементами разных типов
stup=[0,0,1,1,1,1,1,1,1]
spis=[1,2,3,4,
5,6,7,
8,9,10] #список будет считаться незавершенным, пока не будет введена закрывающая квадратная скобка
spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
spis1[-1]
(5-9j)
stup[-8::2] # от -8ого элемента до конца с шагом 2
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1) #число элементов в списке
help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
spis1.append('New item')
'Список'
spis1.append(ss1b)
print(spis1)
[111, (5-9j), 'New item', 'Меня зовут: \n Соловьёва Е. Д.']
```
spis1.append(элемент) добавляет элемент в конец списка spis1+[элемент] - добавляет элемент на вывод 1 раз. Не вписывает этот элемент в список spis1.pop(индекс элемента) - удаляет элемент с указанным индексом spis1.reverse - переворачивает список spis1.insert(индекс, элемент) - вставляет элемент после элемента с указанным индексом spis1.extend(список) - присоединяет в конец другой список spis1.remove(элемент) - удаляет первый встреченный элемент равный указанному spis1.sort() - сортирует список в порядке возрастания spis1.copy() - создает поверхностную копию(shallow copy) spis1.index(элемент) - возвращает индекс первого соответсвующего элемента spis1.clear() - очищает список spis1.count(элемент) - считает кол-во соответствующих элементов
Попробую применить каждую из функций:
```py
spisok = [1, 2, 4, 5]
spisok.remove(2)
print(spisok)
[1, 4, 5]
spisok.extend([4, 5, 6])
print(spisok)
[1, 4, 5, 4, 5, 6]
spisok.sort()
print(spisok)
[1, 4, 4, 5, 5, 6]
spisok.reverse(),print(spisok)
[6, 5, 5, 4, 4, 1]
(None, None)
spisok.reverse()
print(spisok)
[1, 4, 4, 5, 5, 6]
kopiya = spisok.copy()
print(kopiya)
[1, 4, 4, 5, 5, 6]
print(kopiya.count(5))
2
print(spisok.index(4))
1
kopiya.clear(),print(kopiya)
[]
(None, None)
spisok.insert(2, 3) # Вставить 3 на позицию с индексом 2
print(spisok)
[1, 2, 3, 4, 5]
```
Списки могут быть вложенными:
```py
spis2=[spis1,[4,5,6,7]]
spis2[0][1]
(5-9j)
spis2[0][1]=78
spis1
[111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.']
spis2
[[111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.'], [4, 5, 6, 7]]
```
spis1 изменился потому, что в Python списки передаются по ссылке, а не по значению. Когда мы изменяем элемент через spis2[0][1], мы фактически изменяем тот же объект, на который указывает spis1
Далее я создала список включающий объекты разных типов: число, строка, логическое значение, список:
```py
spis3=[1,"one",True,spis1]
spis3
[1, 'one', True, [111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.']]
```
## 8.2. Кортеж
Работа с кортежами - их нельзя изменять, но можно переопределять, таким образом внося изменения.
```py
kort1=(222,'Kortezh',77+8j)
kort1= kort1+(1,2)
kort1= kort1+(ss1b,)
kort2=kort1[:2]+kort1[3:]
kort1.index(2)
4
kort1.count(222)
1
kort1[2]=90
Traceback (most recent call last):
File "<pyshell#115>", line 1, in <module>
kort1[2]=90
TypeError: 'tuple' object does not support item assignment
```
Создам кортеж с элементами разных типов: число, строка, список, кортеж:
```py
kortezh = (1,'one',[1, 1, 1],(1,2,3))
print(kortezh)
(1, 'one', [1, 1, 1], (1, 2, 3))
```
## 8.3. Словарь
Работа со словарями. Ключи - неизменяемы.
```py
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
dic1['Orel']
56
dic1['Pskov']=78
dic1
{'Saratov': 145, 'Orel': 56, 'Vologda': 45, 'Pskov': 78}
sorted(dic1.keys())
['Orel', 'Pskov', 'Saratov', 'Vologda']
sorted(dic1.values())
[45, 56, 78, 145]
dic2={1:'mean',2:'standart deviation',3:'correlation'}
dic3={'statistics':dic2,'POAS':['base','elementary','programming']}
dic3['statistics'][2]
'standart deviation'
dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)])
dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b]))
dic5
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n Соловьёва Е. Д.'}
```
Свой словарь состоит из 5 элементов, потому что мы "сшили" два контейнера, длина определилась по минимальному кол-ву.
```py
testlist = ['pink','yellow','black','green','red']
testkort = ('P','Y','B','G','R','T','Q')
dictest=dict(zip(testkort,testlist))
dictest
{'P': 'pink', 'Y': 'yellow', 'B': 'black', 'G': 'green', 'R': 'red'}
```
## 8.4. Множество
Рассмотрим пример создания множества:
```py
mnoz1
{'микропроцессор', 'двигатель', 'линия связи', 'датчик'}
len(mnoz1)
4
'датчик' in mnoz1
True
mnoz1.add('реле')
mnoz1.remove('линия связи')
mnoz1
{'микропроцессор', 'реле', 'двигатель', 'датчик'}
```
Создам свой пример множества
```py
mnoz2={1,2,3,(222,'Kortezh',77+8j)}
222 in mnoz2
False
Kortezh in mnoz2
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
Kortezh in mnoz2
NameError: name 'Kortezh' is not defined
(222, 'Kortezh', 77+8j) in mnoz2
True
```
## 9.3. Самостоятельное создание кортежа и применение его методов.
```py
kort.count(2)
3
kort.index(4)
4
```
## 9.3. Самостоятельное создание словаря и множества, применение их методов.
```py
dict = {'a': 1, 'b': 2, 'c': 3}
dict.keys() # Все ключи
dict_keys(['a', 'b', 'c'])
dict.values()# Все значения
dict_values([1, 2, 3])
dict.items()# Пары ключ-значение
dict_items([('a', 1), ('b', 2), ('c', 3)])
dict.update({'d': 4, 'e': 5})# Добавляет новые пары
dict
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
dict.pop('b') # Удаляет ключ 'b' и возвращает значение
{'a': 1, 'c': 3, 'd': 4, 'e': 5}
```
Множества
```py
kort.count(2)
3
kort.index(4)
4
```

36
TEMA2/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,36 @@
# Общее контрольное задание по теме 2
Соловьёва Екатерина, А-01-23
## Задание
1. Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
2. Создать переменную со значением, совпадающим с первой буквой из familia.
3. Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
4. Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
5. Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
6. Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
7. Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
8. Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
# Решение
```py
familia='Solovyova'
familia
'Solovyova'
bukva = familia[0]
bukva
'S'
sp_kw = kw.kwlist
sp_kw
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
sp_kw.remove('nonlocal')
sp_kw
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
kort_nam = ('Екатерина', 'Фёдор', 'Елизавета','Никита')
type(kort_nam)
<class 'tuple'>
kort_nam = kort_nam + ("Дима", "Максим")
kort_nam.count('Дима')
1
dict_bas = {'Строка': [familia,bukva], 'Список': sp_kw, 'Кортеж': kort_nam}
dict_bas
{'Строка': ['Solovyova', 'S'], 'Список': ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'], 'Кортеж': ('Екатерина', 'Фёдор', 'Елизавета', 'Никита', 'Дима', 'Максим')}
```

14
TEMA2/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,14 @@
# Индивидуальное контрольное задание по теме 2
Соловьёва Екатерина, А-01-23
## Задание
Пусть создан объект
gg=(11,2,-4,23,12,56)
К какому классу относится этот объект? Подсчитайте сумму его элементов, расположенных на нечетных позициях.
## Решение
```py
gg = (11, 2, -4, 23, 12, 56)
type(gg)
<class 'tuple'>
sum(gg[1::2])
81
```

546
TEMA3/protocol.py Обычный файл
Просмотреть файл

@@ -0,0 +1,546 @@
'Тема 3 Соловьёва Е. Д.'
Python 3.13.6 (tags/v3.13.6:4e66535, Aug 6 2025, 14:36:00) [MSC v.1944 64 bit (AMD64)] on win32
Enter "help" below or click "Help" above for more information.
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA3')
logiz1=bool(56)
logiz2=bool(0)
logiz3=bool("Beta")
logiz4=bool("")
logiz1
True
logiz2
False
logiz3
True
logiz4
False
tt1=int(198.6)
tt1
198
tt2=int("-76")
tt2'
SyntaxError: unterminated string literal (detected at line 1)
tt2
-76
tt2=int("-76")
tt4=int("71",8)
type(tt2)
<class 'int'>
tt3=int("B",16)
tt3
11
tt4=int("71",8)
tt4
57
tt5=int("98.76")
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
tt4 = int(71, 8)
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
tt4 = int(71, 8)
TypeError: int() can't convert non-string with explicit base
a=int(2)
a
2
flt1=float(789)
flt1
789.0
flt2=float(-6.78e2)
flt2
-678.0
flt3=float("Infinity")
flt3
inf
flt4=float("-inf")
flt4
-inf
hh=123
dv1=bin(hh)
dv1
'0b1111011'
vos1=oct(hh)
vos1
'0o173'
shs1=hex(hh)
shs1
'0x7b'
dv1=int(dv1,2)
dv1
123
vos1=int(vos1,8)
vos1=int(vos1,8)
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
vos1=int(vos1,8)
TypeError: int() can't convert non-string with explicit base
vos1
123
shs1=int(shs1,16)
shs1
123
strk1=str(23.6)
strk1
'23.6'
strk2=str(logiz3)
strk2
'True'
strk3=str(["A","B","C"])
strk3
"['A', 'B', 'C']"
strk4=str(("A","B","C"))
strk4
"('A', 'B', 'C')"
strk5=str({"A":1,"B":2,"C":9})
strk5
"{'A': 1, 'B': 2, 'C': 9}"
print(strk1)
23.6
print(strk2)
True
print(strk3)
['A', 'B', 'C']
print(strk4)
('A', 'B', 'C')
print(strk5)
{'A': 1, 'B': 2, 'C': 9}
type(strk5)
<class 'str'>
spis1=list("Строка символов")
spis1
['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в']
spis2=list((124,236,-15,908))
spis2
[124, 236, -15, 908]
spis3=list({"A":1,"B":2,"C":9})
spis3
['A', 'B', 'C']
spis3 = list({"A":1,"B":2,"C":9}.values())
spis3
[1, 2, 9]
spis3 = list({"A":1,"B":2,"C":9}.items())
spis3
[('A', 1), ('B', 2), ('C', 9)]
spis3 = [value for value in {"A":1,"B":2,"C":9}.values() if value % 2 == 0]
spis3
[2]
print(spis1)
['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в']
kort7=tuple('Строка символов')
SyntaxError: unexpected indent
kort7=tuple('Строка символов')
kort7
('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')
kort8=tuple(spis2)
kort8
(124, 236, -15, 908)
kort9=tuple({"A":1,"B":2,"C":9})
kort9
('A', 'B', 'C')
del strk5, kort8
fio='Solovyova E D'
spis0=list(fio)
spis0
['S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D']
kort0=tuple(fio)
kort0
('S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D')
strk0=str(kort0)
kort0=tuple(spis0)
kort0
('S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D')
strk0=str(kort0)
strk0
"('S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D')"
strk5
SyntaxError: unexpected indent
strk5
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
strk5
NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
kort8
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
kort8
NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
12+7+90
109
5.689e-1 - 0.456
0.11289999999999994
23.6+54
77.6
14-56.7+89
46.3
-6.7*12
-80.4
-234.5/6
-39.083333333333336
a=178/45
type(a)
<class 'float'>
a
3.9555555555555557
b=178//45,b
Traceback (most recent call last):
File "<pyshell#109>", line 1, in <module>
b=178//45,b
NameError: name 'b' is not defined
b=178//45
b
3
type(b)
<class 'int'>
c=-24.6//12.1
c
-3.0
tipe(c)
Traceback (most recent call last):
File "<pyshell#115>", line 1, in <module>
tipe(c)
NameError: name 'tipe' is not defined. Did you mean: 'type'?
type(c)
<class 'float'>
d = 56 // 6.01
d
9.0
print(d)
9.0
type(d)
<class 'float'>
e = 7.54// 2
у
Traceback (most recent call last):
File "<pyshell#122>", line 1, in <module>
у
NameError: name 'у' is not defined
e
3.0
type(e)
<class 'float'>
f = -15 // 4
а
Traceback (most recent call last):
File "<pyshell#126>", line 1, in <module>
а
NameError: name 'а' is not defined
а
Traceback (most recent call last):
File "<pyshell#127>", line 1, in <module>
а
NameError: name 'а' is not defined
f
-4
type(f)
<class 'int'>
148%33
16
12.6%3.8
1.2000000000000002
20 % 3.5
2.5
-17 % 5
3
15.7 % 4
3.6999999999999993
14**3
2744
e=2.7**3.6
SyntaxError: unexpected indent
e=2.7**3.6
14**3.6
13367.830445904418
2.7**3
19.683000000000003
z = complex(6, -8)
z**2
(-28-96j)
2**z
(47.34786346201795+43.06018840625417j)
dv1=9
dv1
9
dv2=~dv1
dv2
-10
7&9
1
7&8
0
7|9
15
7|8
15
14|5
15
14^5
11
h=14
g=h<<2
g
56
g1=h>>1
g1
7
g2=h>>2
g2
3
bin(245)
'0b11110101'
k=245
k<<2
980
m=k<<2
m
980
k>>3
30
bin(456)
'0b111001000'
t=456
t>>5
14
t<<14
7471104
'Система '+'регулирования'
'Система регулирования'
'ля-'*5
'ля-ля-ля-ля-ля-'
['ку','-']*3
['ку', '-', 'ку', '-', 'ку', '-']
('кис','-')*4
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
signal1=[0]*3+[1]*99
signal1
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
signal2=(0,)*3+(1,)*5+(0,)*7
signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
stroka='Система автоматического управления'
'автомат' in stroka
True
'ку' in ['ку','-']*3
True
'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
False
stroka='Температура = %g %s %g'
print(stroka)
Температура = %g %s %g
stroka % (16,' меньше ',25)
'Температура = 16 меньше 25'
stroka='Система'
stroka+=' регулирования'
z
(6-8j)
z=10
zz
Traceback (most recent call last):
File "<pyshell#189>", line 1, in <module>
zz
NameError: name 'zz' is not defined. Did you mean: 'z'?
zz=10
zz/=2
zz
5.0
zz*=5
zz
25.0
n1,n2,n3=(11,-3,'all')
т3
Traceback (most recent call last):
File "<pyshell#196>", line 1, in <module>
т3
NameError: name 'т3' is not defined
n3
'all'
161=/10
SyntaxError: cannot assign to literal
x=161
x=/10
SyntaxError: invalid syntax
161//=10
SyntaxError: 'literal' is an illegal expression for augmented assignment
x//=10
x
16
x=166
x\\=10
SyntaxError: unexpected character after line continuation character
x//=10
x
16
x%=2
x
0
x=167
x=2
x**=4
x
16
n1,n2,n3=[11,-3,'all']
n1,n2,n3='11,-3,'all''
SyntaxError: invalid syntax
n1,n2,n3='11,-3,'a"
SyntaxError: unterminated string literal (detected at line 1)
n1,n2,n3='11,-3,'a' '
SyntaxError: invalid syntax
n1,n2,n3="11,-3,'all' "
Traceback (most recent call last):
File "<pyshell#218>", line 1, in <module>
n1,n2,n3="11,-3,'all' "
ValueError: too many values to unpack (expected 3)
n1, n2, n3 = "11,-3,'a'"
Traceback (most recent call last):
File "<pyshell#219>", line 1, in <module>
n1, n2, n3 = "11,-3,'a'"
ValueError: too many values to unpack (expected 3)
n1, n2, n3 = "11", "-3", "all"
n1, n2, n3 = {11, -3, 'all'}
print(n1, n2, n3)
11 -3 all
print(n1, n2, n3)
11 -3 all
n1, n2, n3 = {'a': 1, 'b': 2, 'c': 3}
print(n1, n2, n3)
a b c
w
Traceback (most recent call last):
File "<pyshell#226>", line 1, in <module>
w
NameError: name 'w' is not defined
v
Traceback (most recent call last):
File "<pyshell#227>", line 1, in <module>
v
NameError: name 'v' is not defined
w=10
v=20
w==v
False
w!=v
True
w<v
True
w>v
False
w<=v
True
w=>v
SyntaxError: invalid syntax
w>=v
False
mnoz1={'pen','book','pen','iPhone','table','book'}
'book' in mnoz1
True
'cap' in mnoz1
False
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
'Vologda' in dic1
True
'Pskov' in dic1
False
56 in dic1.values()
True
dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']}
'UII' in dct1['Depart']
True
dct1['Depart'][1] == 'MM'
False
a=17
SyntaxError: unexpected indent
a=17
b=-6
(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1
)
True
x = 10
y = 5
name = "Anna"
result1 = (x > y) and (len(name) == 4) and not (y < 0)
print(result1)
True
(x > y) and (len(name) == 4) and not (y < 0)
True
price=3000
color=blue
Traceback (most recent call last):
File "<pyshell#260>", line 1, in <module>
color=blue
NameError: name 'blue' is not defined
color='blue'
price1=4000
(price<price1) and (color=='red')
False
w=v=10
w is v
True
w1=['A','B']
v1=['A','B']
w1 is v1
False
stroka='Микропроцессорная система управления'
dir(stroka)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
stroka.find('пр')
5
stroka.count("с")
4
stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
spis22=stroka.split(' ')
stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
stroka3=" ".join(spis22)
stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
strk1.format(1,89.7)
'23.6'
strk1='Момент времени 23.6 , значение = 23.6'
strk2='Момент времени {1}, значение = {0}:{2}'
strk2.format(36.7,2,'норма!')
'Момент времени 2, значение = 36.7:норма!'
strk1 = 'Момент времени {}, значение = {}'
strk1.format(1, 89.7)
'Момент времени 1, значение = 89.7'
strk3='Момент времени {num}, значение = {znch}'
strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
spsk='a','b','c','d','e','f'
spsk=[a,b,c,d,e,f]
spsk.pop(2)
-3.0
spsk
[17, -6, 9.0, 35.719843790663525, -4]
spsk=['a,b,c,d,e,f']
spsk
['a,b,c,d,e,f']
spsk.pop(2)
Traceback (most recent call last):
File "<pyshell#294>", line 1, in <module>
spsk.pop(2)
IndexError: pop index out of range
spsk=['a','b','c','d','e','f']
spsk.pop(2)
'c'
spsk
['a', 'b', 'd', 'e', 'f']
spsk.append('c')
spsk
['a', 'b', 'd', 'e', 'f', 'c']
spsk.insert(2,'a')
spsk
['a', 'b', 'a', 'd', 'e', 'f', 'c']
spsk.count('a')
2

610
TEMA3/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,610 @@
# Отчёт по теме 3
Соловьёва Екатерина, А-01-23
## 1. Начало работы с оболочкой IDLE.
## 2. Преобразование простых базовых типов объектов.
## 2.1. Преобразование в логический тип с помощью функции bool(<Объект>).
```py
logiz1=bool(56)
logiz2=bool(0)
logiz3=bool("Beta")
logiz4=bool("")
logiz1
True
logiz2
False
logiz3
True
logiz4
False
```
* False : Пустые значения, ноль и None.
* True : Почти все остальное.
## 2.2. Преобразование в целое десятичное число объекта с заданной системой счисления.
Осуществляется с помощью функции int(<Объект>[,<Система счисления, в которой определен объект>]). По умолчанию система счисления принимается десятичной.
```py
tt1=int(198.6) #Функция получает уже готовое число 198.6 (тип float) и просто отбрасывает дробную часть.
tt1
198
tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная
tt2
-76
tt3=int("B",16)
tt3
11
tt4=int("71",8) #"71"(8)= 7 × 8¹ + 1 × 8⁰ = 7 × 8 + 1 × 1 = 56 + 1 = 57
tt4 = int(71, 8)
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module> #Это вызовет ошибку, потому что функция int() не может применить систему счисления к уже готовому числу.
tt5=int("98.76")
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76' #int() не умеет обрабатывать дробные числа в строках - она ожидает только целые числа.
```
## 2.3. Преобразование целых чисел или строк символов в вещественное число – с помощью функции float(<Объект>).
```py
flt1=float(789)
flt1
789.0
flt2=float(-6.78e2)
flt2
-678.0
flt3=float("Infinity")
flt3
inf
flt4=float("-inf")
flt4
-inf
```
## 2.4. Преобразование десятичных чисел в другие системы счисления.
```py
hh=123
dv1=bin(hh) #Преобразование в строку с двоичным представлением
dv1
'0b1111011'
vos1=oct(hh)# Преобразование в строку с восьмеричным представлением
vos1
'0o173'
shs1=hex(hh)# Преобразование в строку с шестнадцатеричным представлением
shs1
'0x7b'
```
Выполню обратные преобразования объектов:
```py
dv1=int(dv1,2)
dv1
123
vos1=int(vos1,8)
vos1
123
shs1=int(shs1,16)
shs1
123
```
## 3. Изучите преобразования более сложных базовых типов объектов.
## 3.1. Преобразование в строку символов с помощью функции str(<Объект>).
```py
strk1=str(23.6)
strk2=str(logiz3)
strk3=str(["A","B","C"])#Преобразуем список
strk4=str(("A","B","C"))#Преобразуем кортеж
strk5=str({"A":1,"B":2,"C":9})#Преобразуем словарь
print(strk1)
23.6
print(strk2)
True
print(strk3)
['A', 'B', 'C']
print(strk4)
('A', 'B', 'C')
print(strk5)
{'A': 1, 'B': 2, 'C': 9}
```
## 3.2. Преобразование элементов объекта в список с помощью функции list(<Объект>).
```py
spis1=list("Строка символов")
spis1
['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в']
spis2=list((124,236,-15,908))
spis2
[124, 236, -15, 908]
spis3=list({"A":1,"B":2,"C":9})# возвращает список ключей по умолчанию
spis3
['A', 'B', 'C']
```
Попробую создать списки из других частей того же словаря:
```py
spis3 = list({"A":1,"B":2,"C":9}.values()) #cписок значений
spis3
[1, 2, 9]
spis3 = list({"A":1,"B":2,"C":9}.items()) #cписок пар (ключ, значение)
spis3
[('A', 1), ('B', 2), ('C', 9)]
spis3 = [value for value in {"A":1,"B":2,"C":9}.values() if value % 2 == 0] #cписок только четных значений
spis3
[2]
```
## 3.3. Преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>).
```py
kort7=tuple('Строка символов')
kort7
('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')
kort8=tuple(spis2)
kort8
(124, 236, -15, 908)
kort9=tuple({"A":1,"B":2,"C":9})# возвращает список ключей по умолчанию
kort9
('A', 'B', 'C')
```
## 3.4. Удаление объектов.
Проверю остались ли объекты в оперативной памяти после применения операции del:
```py
del strk5, kort8
strk5
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
strk5
NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
kort8
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
kort8
NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
```
Создам строку со своей фамилией и инициалами, преобразую её в список, затем список – в кортеж, кортеж – в строку
```py
fio='Solovyova E D'
spis0=list(fio)
spis0
['S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D']
kort0=tuple(spis0)
kort0
('S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D')
strk0=str(kort0)
strk0
"('S', 'o', 'l', 'o', 'v', 'y', 'o', 'v', 'a', ' ', 'E', ' ', 'D')"
```
## 4. Арифметические операции.
## 4.1 Сложение и вычитание (+ и -)
```py
12+7+90 # Сложение целых чисел
109
5.689e-1 - 0.456 #Вычитание вещественных чисел
0.11289999999999994
23.6+54 #Сложение вещественного и целого чисел
77.6
14-56.7+89 # Сложение и вычитание целых и вещественных чисел
46.3
```
## 4.2 Умножение (*)
```py
-6.7*12 #Умножение вещественного числа на целое число
-80.4
```
## 4.3. Деление (/).
Результатом деления всегда будет вещественное число!
```py
-234.5/6 #Деление вещественного числа на целое
-39.083333333333336
a=178/45 #Деление двух целых чисел
type(a)
<class 'float'>
a
3.9555555555555557
```
## 4.3 Деление с округлением вниз (//).
Здесь результат может быть целым или вещественным.
```py
b=178//45 #Деление двух целых чисел
b
3
type(b)
<class 'int'>
c=-24.6//12.1 #Деление двух вещественных чисел
c
-3.0
type(c)
<class 'float'>
d = 56 // 6.01 #Деление целого числа на вещественное
d
9.0
type(d)
<class 'float'>
e = 7.54// 2 #Деление вещественного числа на целое
e
3.0
type(e)
<class 'float'>
f = -15 // 4 #Деление отрицательных чисел
f
-4
type(f)
<class 'int'>
```
Вывод:
* int - если оба операнда целые
* float - если хотя бы один операнд вещественный
## 4.5. Получение остатка от деления (%).
Формула остатка от деления:
a % b = a - b * (a // b)
```py
148%33 #Остаток от деления двух целых чисел
16
12.6%3.8 #Остаток от деления двух вещественных чисел
1.2000000000000002
20 % 3.5 #Остаток от деления целого на вещественное
2.5
-17 % 5 Остаток от деления отрицательного на целое
3
15.7 % 4 #Остаток от деления вещественного на целое
3.6999999999999993
```
## 4.6. Возведение в степень (**).
```py
14**3 #Целое число возводится в целую степень
2744
e=2.7**3.6 #Вещественное число возводится в вещественную степень
14**3.6 #Целое число возводится в вещественную степень
13367.830445904418
2.7**3 #Вещественное число возводится в целую степень
19.683000000000003
```
операции недоступные с комплексными числами:
* Целочисленное деление
z // 2
* Остаток от деления
z % 2
*Сравнения (<, >, <=, >=)
z > 2
Доступные:
* Сложение
* Вычитание
* Умножение
* Деление
* Возведение в степень
## 5. Операции с двоичными представлениями целых чисел.
## 5.1. Двоичная инверсия (~).
Значение каждого бита в представлении числа заменяется на противоположное значение (0 на 1, 1 на 0).
```py
dv1=9
dv2=~dv1
dv2
-10
bin(dv1)
'0b1001'
bin(dv2)
'-0b1010'
```
В Python операция ~x эквивалентна -x - 1, а работает это так:
9: 0000 1001
~9: 1111 0110
## 5.2. Двоичное «И» (&) – побитовое совпадение двоичных представлений чисел
```py
7&9 # 0111 и 1001 = 0001
1
7&8 # 0111 и 1000 = 0000
0
```
## 5.3. Двоичное «ИЛИ» (|)
Побитовое сравнение двоичных представлений чисел и 0 получается, только если оба сравниваемых разряда равны 0
```py
7|9 # 111 или 1001 = 1111
15
7|8 # 111 или 1000 = 1111
15
14|5 # 1110 или 0101 = 1111
15
```
## 5.4. Двоичное «исключающее ИЛИ»(^)
Побитовое сравнение двоичных представлений чисел и 0 получается, только если оба сравниваемых разряда имеют одинаковые значения – оба 0 или оба 1.
```py
14^5 # 1110 исключающее или 0101 = 1011
11
```
## 5.5. Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева.
```py
h=14 #Двоичное представление = 1110
g=h<<2 # Новое двоичное представление = 111000
g
56
g1=h>>1 # Новое двоичное представление = 0111
g1
7
g2=h>>2 # Новое двоичное представление = 0011
g2
3
```
Свои примеры:
```py
k=245
bin(245)
'0b11110101'
k<<2
980
k>>3
30
bin(456)
'0b111001000'
t=456
t>>5
14
bin(14)
'0b1110'
t<<14
7471104
bin(7471104)
'0b11100100000000000000000'
```
## 6. Операции при работе с последовательностями (строками, списками, кортежами).
## 6.1. Объединение последовательностей (конкатенация)(+)
```py
'Система '+'регулирования' #Соединение двух строк символов
['abc','de','fg']+['hi','jkl'] # Объединение двух списков
('abc','de','fg')+('hi','jkl') # Объединение двух кортежей
```
## 6.2. Повторение (*)
```py
'ля-'*5
'ля-ля-ля-ля-ля-'
['ку','-']*3
['ку', '-', 'ку', '-', 'ку', '-']
('кис','-')*4
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
signal1=[0]*3+[1]*99
signal1
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
signal2=(0,)*3+(1,)*5+(0,)*7
signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```
## 6.3. Проверка наличия заданного элемента в последовательности (in)
```py
stroka='Система автоматического управления'
'автомат' in stroka #Наличие подстроки в строке
True
'ку' in ['ку','-']*3 #Наличие контекста в списке
True
'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже
False
```
## 6.4. Подстановка значений в строку с помощью оператора «%»
```py
# Пример 1.
stroka='Температура = %g %s %g'
stroka % (16,' меньше ',25)
# Пример 2. Именованная подстановка из словаря.
stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
```
## 7. Оператор присваивания
## 7.1. Обычное присваивание значения переменной (=)
```py
zz=-12
```
## 7.2. Увеличение значения переменной на заданную величину (+=) или уменьшение (-=)
```py
zz+=5 # Значение zz увеличивается на 5
zz-=3 # Значение уменьшается на 3
stroka='Система'
stroka+=' регулирования'
```
## 7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
```py
zz=10
zz/=2
zz
5.0
zz*=5
zz
25.0
```
## 7.4. Операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(**=).
```py
x=166
x//=10 #округление вниз
x
16
x%=2 #получение остатка от деления
x
0
x=167
x=2
x**=4 #возведение в степень
x
16
```
## 7.5. Множественное присваивание
```py
w=v=10 # Переменным присваивается одно и то же значение
n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа
```
Проверим можно ли вместо кортежа справа использовать строку, список, словарь, множество
```py
n1, n2, n3 = "11", "-3", "all"
n1,n2,n3=[11,-3,'all']
n1, n2, n3 = {11, -3, 'all'}
print(n1, n2, n3)
11 -3 all
n1, n2, n3 = {'a': 1, 'b': 2, 'c': 3}
print(n1, n2, n3)
a b c
```
Вывод: всё работает, но в случае словаря присваиваются ключи
## 8. Логические операции – при создании логических выражений, дающих в результате вычисления значения True или False.
## 8.1. Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=)
```py
w=10
v=20
w==v
False
w!=v
True
w<v
True
w>v
False
w<=v
True
w>=v
False
```
## 8.2. Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in).
```py
# Операции с множеством
mnoz1={'pen','book','pen','iPhone','table','book'}
'book' in mnoz1
True
'cap' in mnoz1
False
# Операции со словарем
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
'Vologda' in dic1
True
'Pskov' in dic1
False
56 in dic1.values()
True
dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']}
'UII' in dct1['Depart']
True
dct1['Depart'][1] == 'MM'
False
```
## 8.3. Создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not).
```py
a=17
b=-6
(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
x = 10
y = 5
name = "Anna"
(x > y) and (len(name) == 4) and not (y < 0)
True
price=3000
color='blue'
price1=4000
(price<price1) and (color=='red')
False
```
## 8.4. Проверка ссылок переменных на один и тот же объект (is).
```py
w=v=10
w is v
True
w1=['A','B']
v1=['A','B']
w1 is v1
False
```
Вывод: is проверяет, ссылаются ли переменные на один и тот же объект в памяти, а не на одинаковые значения
## 9. Операции с объектами, выполняемые с помощью методов.
```py
stroka='Микропроцессорная система управления'
dir(stroka)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
```
## 9.1. Методы для работы со строками.
```py
stroka.find('пр')
5
stroka.count("с")
4
stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
spis22=stroka.split(' ')
stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
stroka3=" ".join(spis22)
stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
strk1.format(1, 89.7)
'Момент времени 1, значение = 89.7'
strk2='Момент времени {1}, значение = {0}:{2}'
strk2.format(36.7,2,'норма!')
'Момент времени 2, значение = 36.7:норма!'
strk3='Момент времени {num}, значение = {znch}'
strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
```
## 9.2. Методы для работы со списками.
```py
spsk=['a','b','c','d','e','f'] # удалить второй по счёту элемент
spsk.pop(2)
'c'
spsk
['a', 'b', 'd', 'e', 'f']
spsk.append('c') # Добавть с в конец списка
spsk
['a', 'b', 'd', 'e', 'f', 'c']
spsk.insert(2,'a') # Вставить a на позицию с индексом 2
spsk
['a', 'b', 'a', 'd', 'e', 'f', 'c']
spsk.count('a') # Подсчёт количества 'а' в списке
2
```
## 9.3. Самостоятельное создание кортежа и применение его методов.
```py
kort = (1, 2, 3, 2, 4, 2, 5)
len(kort)
7
max(kort)
5
min(kort)
1
sorted(kort)
[1, 2, 2, 2, 3, 4, 5]
kort.index(2)
1
kort.count(2)
3
```
## 9.3. Самостоятельное создание словаря и множества, применение их методов.
```py
dict = {'a': 1, 'b': 2, 'c': 3}
dict.keys() # Все ключи
dict_keys(['a', 'b', 'c'])
dict.values()# Все значения
dict_values([1, 2, 3])
dict.items()# Пары ключ-значение
dict_items([('a', 1), ('b', 2), ('c', 3)])
dict.update({'d': 4, 'e': 5})# Добавляет новые пары
dict
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
dict.pop('b') # Удаляет ключ 'b' и возвращает значение
{'a': 1, 'c': 3, 'd': 4, 'e': 5}
```
Множества
```py
mnoz1 = {1, 2, 3, 4, 5}
mnoz2 = {4, 5, 6, 7, 8}
mnoz1.union(mnoz2) # Объединение
{1, 2, 3, 4, 5, 6, 7, 8}
mnoz1.intersection(mnoz2)# Пересечение
{4, 5}
mnoz1.difference(mnoz2) # разность (возвращает элементы, которые есть в mnoz1, но нет в mnoz2)
{1, 2, 3}
mnoz1.symmetric_difference(mnoz2)# Симметричная разность возвращает элементы, которые есть только в одном из множеств
{1, 2, 3, 6, 7, 8}
mnoz1.add(6) # Добавляет элемент
mnoz1
{1, 2, 3, 4, 5, 6}
mnoz2.remove(3)# Удаляет конкретный элемент (ошибка если нет)
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
mnoz2.remove(3)
KeyError: 3
mnoz1.remove(3)
mnoz1
{1, 2, 4, 5, 6}
```

53
TEMA3/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,53 @@
# Общее контрольное задание по теме 3
Соловьёва Екатерина, А-01-23
## Задание
1. Преобразовать восьмеричное значение 45 в целое число.
2. Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка?
3. Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4.
4. Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.
5. Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.
6. Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов.
7. Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список.
## Решение
```py
#1
w=int('45',8)
w
37
#2
D={"усиление":23, "запаздывание":12, "постоянная времени":78}
keys= list(D.keys())
keys
['усиление', 'запаздывание', 'постоянная времени']
values = list(D.values())
values
[23, 12, 78]
kort=(keys,values)
kort
(['усиление', 'запаздывание', 'постоянная времени'], [23, 12, 78])
# Списки используются, когда нужно работать с изменяемым набором элементов
# Кортежи используются, когда нужно создать неизменяемую коллекцию данных (например, для хранения констант)
#3
((1768 // 24.8) % 3) ** 2.4
5.278031643091577
#4
((~(13 & 27)) ^ 14) << 2
-32
#5
spisok = ['колебат'] * 4
'аткол' in (spisok[1] + spisok[2])
True
#6
dir(D)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__','__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
keys
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
values
dict_values([23, 12, 78])
spis[spis.index("-")] = ","
spis
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
spis.remove('данного')
spis
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения']
```

56
TEMA3/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,56 @@
# Индивидуальное контрольное задание по теме 3
Соловьёва Екатерина, А-01-23
## Задание
1) Для чего предназначено предложение "Окно (Window)" главного меню?
2) Создайте объект-словарь с 8 элементами: ключи - фамилии студентов группы, значения - средние баллы по итогам сессии. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта.
3) Пополните словарь еще двумя элементами. Отобразите получившийся объект. Напишите инструкцию, позволяющую для указанного студента из словаря получить значение его среднего балла. Напишите инструкцию для получения списка всех студентов, представленных в словаре.
4) У одного из студентов средний балл оказался на 0.2 меньше указанного в словаре. Напишите инструкцию, исправляющую это значение в словаре. Отобразите полученный объект. Напишите инструкцию, вычисляющую общий средний балл для всех студентов, представленных в словаре.
5) Создайте список из названий 4-х учебных дисциплин и список с числом часов в неделю на изучение каждой из 4-х дисциплин. Напишите инструкцию, позволяющую создать словарь, объединяющий эти два списка.
## Решение
1) Предложение «Окно (Window)» главного меню предназначено для управления открытыми на экране окнами.
С его помощью можно упорядочивать, скрывать окна и переходить из одного окна в другое. Кроме того, команды данного меню позволяют активизировать любое открытое окно.
2)
```py
spisok = {"Соловьёва": 4.5,"Лыкова": 4.7,"Подольский": 4.0,"Мельников": 3.0,"Филиппова": 4.5,"Терехов": 5.0,"Ходюк": 4.3,"Тимошенко": 4.6}
type(spisok)
<class 'dict'>
dir(spisok)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
```
3)
```py
spisok["Таболин"] = 3.5
spisok["Филиппов"] = 3.7
spisok
{'Соловьёва': 4.5, 'Лыкова': 4.7, 'Подольский': 4.0, 'Мельников': 3.0, 'Филиппова': 4.5, 'Терехов': 5.0, 'Ходюк': 4.3, 'Тимошенко': 4.6, 'Таболин': 3.5, 'Филиппов': 3.7}
spisok.keys()
dict_keys(['Соловьёва', 'Лыкова', 'Подольский', 'Мельников', 'Филиппова', 'Терехов', 'Ходюк', 'Тимошенко', 'Таболин', 'Филиппов'])
spisok.get('Соловьёва')
4.5
```
4)
```py
spisok['Мельников'] -= 0.2
spisok
{'Соловьёва': 4.5, 'Лыкова': 4.7, 'Подольский': 4.0, 'Мельников': 2.8, 'Филиппова': 4.5, 'Терехов': 5.0, 'Ходюк': 4.3, 'Тимошенко': 4.6, 'Таболин': 3.5, 'Филиппов': 3.7}
summa = sum(spisok.values())
average= summa / len(spisok)
average
4.16
```
5)
```py
subjects = ["Математический анализ", "Физика", "ТАУ", "ИАД"]
hours = [6, 4, 5, 3]
subjects_dict = dict(zip(subjects, hours))
subjects_dict
{'Математический анализ': 6, 'Физика': 4, 'ТАУ': 5, 'ИАД': 3}
```py

Двоичные данные
TEMA4/Ris1.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 18 KiB

Двоичные данные
TEMA4/Ris2.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 26 KiB

Двоичные данные
TEMA4/Ris3.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
TEMA4/bar.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.7 KiB

Двоичные данные
TEMA4/hist.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 7.9 KiB

384
TEMA4/protocol.py Обычный файл
Просмотреть файл

@@ -0,0 +1,384 @@
Тема 4 Соловьёва Е. Д.
os import
SyntaxError: invalid syntax
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA4')
help('round')
Help on built-in function round in module builtins:
round(number, ndigits=None)
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise
the return value has the same type as the number. ndigits may be negative.
round(123.456,1)
123.5
round(123.456,0)
123.0
type(123.5)
<class 'float'>
type(123.0)
<class 'float'>
s=round(123.456,1)
ss=type(123.5)
ss=round(123.456,0)
type(ss)
<class 'float'>
type(s)
<class 'float'>
round(123.456)
123
type(123)
<class 'int'>
gg=range(76,123,9)
пп
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
пп
NameError: name 'пп' is not defined
gg
range(76, 123, 9)
list(gg)
[76, 85, 94, 103, 112, 121]
range(23)
range(0, 23)
list(range(23))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
qq='Solovyova'
gg='Ivanov','Lazarev','Likova'
ff=zip(gg,qq)
ff
<zip object at 0x000001308EED4840>
tuple(ff)
(('Ivanov', 'S'), ('Lazarev', 'o'), ('Likova', 'l'))
gg=range(76,123,9)
list(gg)
[76, 85, 94, 103, 112, 121]
qq = ["Соловьёва", "Лыкова", "Филиппова", "Мельников"]
ff=zip(gg,qq)
аа
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
аа
NameError: name 'аа' is not defined
ff
<zip object at 0x0000013090F83C40>
tuple(ff)
((76, 'Соловьёва'), (85, 'Лыкова'), (94, 'Филиппова'), (103, 'Мельников'))
ff[0]
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
ff[0]
TypeError: 'zip' object is not subscriptable
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=5
fff
5.0
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=0
fff
0.0
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=5
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=5
fff
5.0
dan
-131.0
exec(input('введите инструкции:'))
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
пп
Traceback (most recent call last):
File "<pyshell#43>", line 1, in <module>
пп
NameError: name 'пп' is not defined
gg
221.456
abs(-5)
5
pow(2, 3)
8
max([1, 5, 2])
5
min([1, 5, 2])
1
sum([1, 2, 3])
6
divmod(10, 3)
(3, 1)
len("abc")
3
list(map(str, [1, 2, 3]))
['1', '2', '3']
import math
dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fma', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
help(math.factorial)
Help on built-in function factorial in module math:
factorial(n, /)
Find n!.
math.factorial(5)
120
help(math.factorial)
Help on built-in function factorial in module math:
factorial(n, /)
Find n!.
math.sin(3.14)
0.0015926529164868282
math.acos(0.5)
1.0471975511965979
math.degrees(56)
3208.56365273261
math.degrees(1)
57.29577951308232
math.radians(57.29577951308232)
1.0
math.exp(1)
2.718281828459045
math.log(10)
2.302585092994046
math.log(2.302585092994046)
0.834032445247956
math.log10(100)
2.0
math.sqrt(16)
4.0
math.ceil(1.2)
2
math.floor(0.9)
0
math.pi
3.141592653589793
math.sin(2 * math.pi / 7 + math.exp(0.23))
0.8334902641414562
import cmath
dir(cmath)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
cmath.sqrt(1.2-0.5j)
(1.118033988749895-0.22360679774997896j)
cmath.phase(1-0.5j)
-0.4636476090008061
dir(random)
Traceback (most recent call last):
File "<pyshell#76>", line 1, in <module>
dir(random)
NameError: name 'random' is not defined. Did you forget to import 'random'?
import random
dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
help(random.seed)
Help on method seed in module random:
seed(a=None, version=2) method of random.Random instance
Initialize internal state from a seed.
The only supported seed types are None, int, float,
str, bytes, and bytearray.
None or no argument seeds from current time or from an operating
system specific randomness source if available.
If *a* is an int, all bits are used.
For version 2 (the default), all of the bits are used if *a* is a str,
bytes, or bytearray. For version 1 (provided for reproducing random
sequences from older versions of Python), the algorithm for str and
bytes generates a narrower range of seeds.
random.seed()
a=random.seed()
a
random.random()
0.6199792494543297
random.uniform(1, 10)
7.745269197841402
random.randint(1, 6)
3
random.gauss(0, 1)
1.0442172814729307
random.choice(['a','b','c'])
'b'
lst = [1,2,3]; random.shuffle(lst)
random.shuffle(lst)
дые
Traceback (most recent call last):
File "<pyshell#90>", line 1, in <module>
дые
NameError: name 'дые' is not defined
lst
[3, 2, 1]
random.shuffle(lst)
lst
[3, 2, 1]
random.shuffle(lst)
lst
[3, 1, 2]
random.sample([1,2,3,4])
Traceback (most recent call last):
File "<pyshell#96>", line 1, in <module>
random.sample([1,2,3,4])
TypeError: Random.sample() missing 1 required positional argument: 'k'
random.sample([1,2,3,4], 2)
[4, 2]
random.sample([1,2,3,4], 2)
[2, 4]
random.sample([1,2,3,4], 2)
[3, 1]
random.betavariate(2, 5)
0.27219690103691246
random.gammavariate(2, 1)
2.5239555636492557
spisok = [random.uniform(1, 10), random.gauss(0, 1), random.betavariate(2, 5), random.gammavariate(2, 1)]
spisok
[4.813064235823525, -0.2439125318449509, 0.12581423894318752, 1.940336067871031]
import time
dir(time)
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
c1=time.time()
c2=time.time()-c1
c2
18.061716318130493
c1
1760287587.2442193
dat=time.gmtime()
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=16, tm_min=51, tm_sec=23, tm_wday=6, tm_yday=285, tm_isdst=0)
dat.tm_mon
10
dat.localtime
Traceback (most recent call last):
File "<pyshell#113>", line 1, in <module>
dat.localtime
AttributeError: 'time.struct_time' object has no attribute 'localtime'
localtime
Traceback (most recent call last):
File "<pyshell#114>", line 1, in <module>
localtime
NameError: name 'localtime' is not defined
time.localtime
<built-in function localtime>
local_time = time.localtime()
local_time
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=54, tm_sec=1, tm_wday=6, tm_yday=285, tm_isdst=0)
c1 = time.time()
local_struct = time.localtime(c1)
local_struct
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=59, tm_sec=42, tm_wday=6, tm_yday=285, tm_isdst=0)
time_str = time.asctime(local_struct)
time_str
'Sun Oct 12 19:59:42 2025'
time_str2 = time.ctime(c1)\
/
SyntaxError: multiple statements found while compiling a single statement
time_str2 = time.ctime(c1)
print(f"Год: {local_time.tm_year}")
Год: 2025
time.sleep(2)
time.sleep(2)
seconds = time.mktime(local_struct)
seconds
1760288382.0
new_struct = time.localtime(seconds)
new_struct
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=59, tm_sec=42, tm_wday=6, tm_yday=285, tm_isdst=0)
import pylab
Traceback (most recent call last):
File "<pyshell#134>", line 1, in <module>
import pylab
ModuleNotFoundError: No module named 'pylab'
import sys
sys.path.append(C:\\Users\Ekaterina\\AppData\\Roaming\\Microsoft\Windows\\Start Menu\\Programs\\Python 3.13)
SyntaxError: invalid character '' (U+2018)
import sys
sys.path.append('C:\\Users\Ekaterina\\AppData\\Roaming\\Microsoft\Windows\\Start Menu\\Programs\\Python 3.13')
import pylab
Traceback (most recent call last):
File "<pyshell#139>", line 1, in <module>
import pylab
ModuleNotFoundError: No module named 'pylab'
pip install matplotlib
SyntaxError: invalid syntax
import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<pyshell#143>", line 1, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
import pylab
x=list(range(-3,55,4))
t=list(range(15))
x
[-3, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53]
t
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
pylab.plot(t,x)
[<matplotlib.lines.Line2D object at 0x00000130A1F4E990>]
pylab.title
<function title at 0x00000130A1BD8F40>
pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.show()
X1=[12,6,8,10,7] и X2=[5,7,9,11,13]
SyntaxError: invalid syntax
X1=[12,6,8,10,7]
X2=[5,7,9,11,13]
pylab.plot(X1)
[<matplotlib.lines.Line2D object at 0x00000130A2AE2E90>]
pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x00000130A2AE2FD0>]
pylab.show()
pylab.show()
region=['Центр','Урал','Сибирь','Юг']
naselen=[65,12,23,17]
pylab.pie(naselen,labels=region)
([<matplotlib.patches.Wedge object at 0x00000130A1F397F0>, <matplotlib.patches.Wedge object at 0x00000130A24E8910>, <matplotlib.patches.Wedge object at 0x00000130A24E8CD0>, <matplotlib.patches.Wedge object at 0x00000130A24E8F50>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
pylab.show()
data = [1, 2, 2, 3, 3, 3, 4, 4, 5]
plt.hist(data, 5)
Traceback (most recent call last):
File "<pyshell#167>", line 1, in <module>
plt.hist(data, 5)
NameError: name 'plt' is not defined
pylab.hist(data,5)
(array([1., 2., 3., 2., 1.]), array([1. , 1.8, 2.6, 3.4, 4.2, 5. ]), <BarContainer object of 5 artists>)
pylab.show()
c = ['A', 'B', 'C']
v = [10, 25, 15]
pylab..bar(c, v)
SyntaxError: invalid syntax
pylab.bar(c, v)
<BarContainer object of 3 artists>
pylab.show()
sred = statistics.mean(data)
Traceback (most recent call last):
File "<pyshell#175>", line 1, in <module>
sred = statistics.mean(data)
NameError: name 'statistics' is not defined. Did you forget to import 'statistics'?
import statistic
Traceback (most recent call last):
File "<pyshell#176>", line 1, in <module>
import statistic
ModuleNotFoundError: No module named 'statistic'
import statistics
sred = statistics.mean(data)
often = statistics.mode(data)
often
3
mediana = statistics.median(data)
mediana
3
moda = statistics.mode(data)

314
TEMA4/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,314 @@
# Отчёт по Теме 4
Соловьёва Екатерина А-01-23
## 1. Запуск интерактивной оболочки IDLE
## 2. Стандартные функции, находящиеся в модуле builtins
## 2.1. Функция round – округление числа с заданной точностью.
Получим справку по назначению этой функции
```py
help('round')
Help on built-in function round in module builtins:
round(number, ndigits=None)
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise
the return value has the same type as the number. ndigits may be negative.
```py
s=round(123.456,1)
ss=round(123.456,0)
type(ss)
<class 'float'>
type(s)
<class 'float'>
```
оба числа типа float. Отличие только в значении после запятой
```py
round(123.456)
123
type(123)
<class 'int'>
```
Без второго аргумента возвращает целое число.
## 2.2. Функция range – создание последовательности целых чисел с заданным шагом
```py
gg=range(76,123,9)
gg
range(76, 123, 9)
list(gg)
[76, 85, 94, 103, 112, 121]
```
эта инструкция создает, так называемый, «итерируемый объект» класса range. Чтобы увидеть получившуюся последовательность чисел, его надо преобразовать, например, в список
```py
range(23)
range(0, 23)
list(range(23))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
```
Значения: от 0 до 22
Шаг: 1
## 2.3. Функция zip
zip – создание общего объекта, элементами которого являются кортежи, составленные из элемен-тов двух или более объектов-последовательностей (zip – застежка-«молния»). Длина результиру-ющего объекта равна длине самого короткого объекта из двух аргументов функции.
```py
list(gg)
[76, 85, 94, 103, 112, 121]
qq = ["Соловьёва", "Лыкова", "Филиппова", "Мельников"]
ff=zip(gg,qq)
ff
<zip object at 0x0000013090F83C40>
tuple(ff)
((76, 'Соловьёва'), (85, 'Лыкова'), (94, 'Филиппова'), (103, 'Мельников'))
ff[0]
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
ff[0]
TypeError: 'zip' object is not subscriptable
```
Количество элементов: 3 (по длине короткого списка gg)
ff[0] вызовет ошибку, к объекту zip нельзя обращаться по индексу
## 2.4. Функция eval – вычисление значения выражения, корректно записанного на языке Python и представленного в виде символьной строки.
```py
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=5
fff
5.0
dan
-131.0
```
## 2.5. Функция exec – чтение и выполнение объекта-аргумента функции (Этот объект должен представлять собой строку символов с совокупностью инструкций на языке Python)
```py
exec(input('введите инструкции:'))
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
gg
221.456
```
## 2.6. Самостоятельное изучение функций abs, pow, max, min, sum, divmod, len, map.
```py
gg
221.456
abs(-5)
5
pow(2, 3)
8
max([1, 5, 2])
5
min([1, 5, 2])
1
sum([1, 2, 3])
6
divmod(10, 3) # частное и остаток
(3, 1)
len("abc")
3
list(map(str, [1, 2, 3])) # применяет функцию к каждому элементу
['1', '2', '3']
```
## 3. Функции из стандартного модуля math – совокупность разнообразных математических функций.
```py
math.sin(3.14)
0.0015926529164868282
math.acos(0.5)
1.0471975511965979
math.degrees(1)
57.29577951308232
math.radians(57.29577951308232)
1.0
math.exp(1)
2.718281828459045
math.log(2.302585092994046) # натуральный логарифм
0.834032445247956
math.log10(100)
2.0
math.sqrt(16)
4.0
math.ceil(1.2) # округление вверх
2
math.floor(0.9) # округление вниз
0
math.pi
3.141592653589793
math.sin(2 * math.pi / 7 + math.exp(0.23))
0.8334902641414562
```
## 4. Функции из модуля cmath – совокупность функций для работы с комплексными числами.
```py
import cmath
dir(cmath)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
cmath.sqrt(1.2-0.5j)
(1.118033988749895-0.22360679774997896j)
cmath.phase(1-0.5j) # угол в радианах
-0.4636476090008061
```
## 5. Стандартный модуль random – совокупность функций для выполнения операций с псевдослучайными числами и выборками.
```py
import random
dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
help(random.seed)
Help on method seed in module random:
seed(a=None, version=2) method of random.Random instance
Initialize internal state from a seed.
The only supported seed types are None, int, float,
str, bytes, and bytearray.
None or no argument seeds from current time or from an operating
system specific randomness source if available.
If *a* is an int, all bits are used.
For version 2 (the default), all of the bits are used if *a* is a str,
bytes, or bytearray. For version 1 (provided for reproducing random
sequences from older versions of Python), the algorithm for str and
bytes generates a narrower range of seeds.
random.seed() #эта функция не имеет возвращаемых значений
```
Далее самостоятельно изучу и попробую применить следующие функции: random (равно-мерно распределенное случайное число), uniform (равномерно распределенное случайное число), randint (случайные целые числа), gauss (нормально распределенное случайное число), randint (случайное целое число), choice (случайный выбор из совокупности), shuffle (случайная переста-новка элементов списка), sample (случайный выбор подмножества элементов), betavariate(случайное число с бета-распределением), gammavariate(случайное число с гамма-распределением).
```py
random.random()
0.6199792494543297
random.uniform(1, 10)
7.745269197841402
random.randint(1, 6)
3
random.gauss(0, 1)
1.0442172814729307
random.choice(['a','b','c'])
'b'
lst = [1,2,3]; random.shuffle(lst)
lst
[3, 2, 1]
random.sample([1,2,3,4], 2)
[4, 2]
random.betavariate(2, 5)
0.27219690103691246
random.gammavariate(2, 1)
2.5239555636492557
```
Создам список с 4 случайными значениями, подчиняющимися, соответственно, равномерному, нормальному, бета и гамма – распределениям и с любыми допустимыми значениями параметров этих распределений.
```py
spisok = [random.uniform(1, 10), random.gauss(0, 1), random.betavariate(2, 5), random.gammavariate(2, 1)]
spisok
[4.813064235823525, -0.2439125318449509, 0.12581423894318752, 1.940336067871031]
```
## 6. Функции из модуля time – работа с календарем и со временем.
```py
import time
dir(time)
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
c1=time.time()
c2=time.time()-c1
c2
18.061716318130493
c1
1760287587.2442193
dat=time.gmtime()
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=16, tm_min=51, tm_sec=23, tm_wday=6, tm_yday=285, tm_isdst=0)
dat.tm_mon
10
local_time = time.localtime()
local_time
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=54, tm_sec=1, tm_wday=6, tm_yday=285, tm_isdst=0)
print(f"Год: {local_time.tm_year}")
Год: 2025
```
Изучу и попробую применить функции: asctime (преобразование представления времени из кортежа в строку) , ctime (преобразование времени в секундах, прошедшего с начала эпохи, в строку), sleep (прерывание работы программы на заданное время), mktime (преобразова-ние времени из типа кортежа или struct_time в число секунд с начала эпохи). Обратное преобразование из секунд в местное время осуществляется той же функцией localtime()
time.localtime(c1)
```py
c1 = time.time()
local_struct = time.localtime(c1)
local_struct
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=59, tm_sec=42, tm_wday=6, tm_yday=285, tm_isdst=0)
time_str = time.asctime(local_struct)
time_str
'Sun Oct 12 19:59:42 2025'
time_str2 = time.ctime(c1)
time.sleep(2)
seconds = time.mktime(local_struct)
seconds
1760288382.0
new_struct = time.localtime(seconds)
new_struct
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=19, tm_min=59, tm_sec=42, tm_wday=6, tm_yday=285, tm_isdst=0)
```
## 7. Графические функции.
```py
import pylab
x=list(range(-3,55,4))
t=list(range(15))
x
[-3, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53]
t
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
pylab.plot(t,x)
[<matplotlib.lines.Line2D object at 0x00000130A1F4E990>]
pylab.title
<function title at 0x00000130A1BD8F40>
pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.show()
```
![График](Ris1.png)
Рассмотри способ построения нескольких графиков на одном рисунке.
```py
>>> X1=[12,6,8,10,7]
>>> X2=[5,7,9,11,13]
>>> pylab.plot(X1)
[<matplotlib.lines.Line2D object at 0x0000026ABB1756D0>]
>>> pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x0000026ABB175810>]
>>> pylab.show()
```
![График](Ris2.png)
Изучение возможности построения круговой диаграммы
```py
>>> region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы
>>> naselen=[65,12,23,17] # Значения для диаграммы
>>> pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
([<matplotlib.patches.Wedge object at 0x0000026ABA668050>, <matplotlib.patches.Wedge object at 0x0000026ABD80B110>, <matplotlib.patches.Wedge object at 0x0000026ABD80B4D0>, <matplotlib.patches.Wedge object at 0x0000026ABD80B750>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
>>> pylab.show() #Отображение диаграммы
```
![График](Ris3.png)
попробую применить функции hist и bar для построения гистограмм и столбиковых диаграмм.
```py
data = [1, 2, 2, 3, 3, 3, 4, 4, 5]
pylab.hist(data,5)
(array([1., 2., 3., 2., 1.]), array([1. , 1.8, 2.6, 3.4, 4.2, 5. ]), <BarContainer object of 5 artists>)
pylab.show()
c = ['A', 'B', 'C']
v = [10, 25, 15]
pylab.bar(c, v)
<BarContainer object of 3 artists>
pylab.show()
```
Получились следующие графики
![График](hist.png)
![График](bar.png)
## 8. Самостоятельное изучение состава статистического модуля statistics.
```py
data = [1, 2, 2, 3, 3, 3, 4, 4, 5]
import statistics
sred = statistics.mean(data) # среднее значение
moda = statistics.mode(data) # Мода (наиболее частое значение)
often
3
mediana = statistics.median(data) # медиана
mediana
3
```

51
TEMA4/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,51 @@
# Общее контрольное задание по теме 4
Соловьёва Екатерина, А-01-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
* Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
* Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
* Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
* Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
* Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
* Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
```py
>>> #1
>>> exec('''
... import cmath
... result = divmod(round(cmath.phase(0.2 + 0.8j), 2) * 20, 3)
... print(result)
... ''')
(8.0, 2.6000000000000014)
>>> #2
>>> import time
>>> localTime = time.localtime()
>>> print("Current time: {}:{}".format(localTime.tm_hour, localTime.tm_min))
Current time: 23:30
>>> #3
>>> weekDays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
>>> import random
>>> random.sample(weekDays, 3)
['Saturday', 'Monday', 'Thursday']
>>> #4
>>> random.choice(range(14, 33, 3))
23
>>> #5
>>> N = math.floor(random.gauss(15, 4))
>>> N
17
>>> import string
>>> letters = random.sample(string.ascii_letters, N)
>>> letters
['P', 'b', 't', 'z', 'R', 'f', 'm', 'O', 'p', 'i', 'j', 'a', 'E', 'r', 'B', 'd', 'y']
>>> #6
>>> timeDiff = round(time.time() - time.mktime(localTime))
>>> print(timeDiff // 60, "minutes and", timeDiff % 60, "seconds")
19 minutes and 52 seconds
```

17
TEMA4/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,17 @@
# Отчёт по ТЕМЕ 4
Соловьёва Екатерина, А-01-23
## Задание
Напишите инструкцию, позволяющую определить и записать в переменную календарные характеристики (год, месяц, день) момента, отстоящего на 7000000 сек. вперед от текущего времени. Выведите эти сведения в виде строки вида: «Это будет ХХ-ХХ-ХХХХ». Создайте множество с 5 случайными целыми элементами, значения которых находятся в диапазоне значений от 1 до 12.
## Решение
```py
import time
import random
c1 = time.localtime()
c2 = time.mktime(c1) + 7000000
c3 = time.localtime(c2)
print(f'Это будет {c3.tm_mday:02d}-{c3.tm_mon:02d}-{c3.tm_year}')
Это будет 12-01-2026
mnoz = set(random.sample(range(1, 13), 5))
print(mnoz)
{5, 6, 10, 11, 12}
```

10
TEMA5/3.py Обычный файл
Просмотреть файл

@@ -0,0 +1,10 @@
stud_spis = ['Лыкова', 'Соловьёва', 'Коваленко','Голощапов']
stud_ocen =[4.9, 4.4, 4.6, 4.8]
stud_spis2 = ['Соловьёва', 'Голощапов', 'Лыкова', 'Коваленко']
stud_ocen2 = [4.3, 4.8, 4.2, 4.9]
nam = input('Введите фамилию студента:')
if nam in stud_spis and stud_spis2:
print(f'Средний балл за летнюю сессию: ', stud_ocen[stud_spis.index(nam)])
print(f'Средний балл за зимнюю сессию: ', stud_ocen2[stud_spis2.index(nam)])
else:
print(f'Студент отсутствует в списке')

14
TEMA5/4.py Обычный файл
Просмотреть файл

@@ -0,0 +1,14 @@
stroka = 'я, великий и могучий юноша-вождь с мечом и щитом захватил и объединил эфесское царство'
RusAlph = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
found_letters = set()
for x in stroka:
if x in RusAlph:
found_letters.add(x)
missing_letters = []
for i in RusAlph:
if i not in found_letters:
missing_letters.append(i)
print(f'Буквы, которых нет в строке: {missing_letters}')

283
TEMA5/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,283 @@
# Отчёт по Теме 5
Соловьёва Екатерина А-01-23
## 1. Запуск IDLE, привязка католога, создание файла отчета.
```py
import os
os.chdir("C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA5")
```
## 2. Ветвление по условию.
```py
porog,rashod1,rashod2 = 5,13,24
if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
dohod
12
porog,rashod1,rashod2 = 5,13,4
if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
dohod
13
if porog == 3:
dohod = 1
elif porog == 4:
dohod = 2
elif porog == 5:
dohod = 3
else:
dohod = 0
dohod
3
dohod = 2 if porog >= 4 else 0
dohod
2
porog,rashod1,rashod2 = 5,13,24
if porog >= 5:rashod1 = 6; rashod2 = 0
rashod1,rashod2
(6, 0)
```
## 3. Цикл по перечислению.
## 3.1 Простой цикл.
```py
temperatura = 5
for i in range(3,18,3):
temperatura += i
temperatura
50
```
## 3.2 Более сложный цикл.
```py
sps = [2,15,14,8]
for k in sps:
if len(sps) <= 10: sps.append(sps[0])
else: break
sps
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
sps = [2,15,14,8]
for k in sps[:]:
if len(sps) <= 10: sps.append(sps[0])
else: break
sps
[2, 15, 14, 8, 2, 2, 2, 2]
```
Вывод второго цикла отличается от первого из-за того, что работает он по длине копии списка. Следовательно, когда в оригинальный список добавляется новый элемент, длина копии остается такой же.
## 3.3 Создание списка со случайными числами.
```py
import random as rn
sps5 = []
for i in range(10):
sps5.append(rn.randint(1,100))
ss = sum(sps5)
if ss>500: break
else:
print(ss)
386
for i in range(10):
sps5.append(rn.randint(1,100))
ss = sum(sps5)
if ss>500: break
else:
print(ss)
#Пусто
```
В первом цикле не достигли 500, во втором — быстро превысили и вышли через break.
## 3.4 Символьная строка.
```py
stroka = 'Это - автоматизированная система'
stroka1 = ''
for ss in stroka:
stroka1 += '' + ss
stroka1
'Это - автоматизированная система'
```
## 3.5 Запись цикла в строке.
```py
import math
sps2 = [math.sin(i*math.pi/5+2)for i in range(100)]
import pylab
pylab.plot(sps2, label = 'Синусоидальный сигнал')
[<matplotlib.lines.Line2D object at 0x0000023CE2346990>]
pylab.show()
```
![график](ris1.png)
## 4. Цикл while.
## 4.1 Цикл со счётчиком.
```py
rashod = 300
while rashod:
print('Расход =',rashod)
rashod -= 50
Расход = 300
Расход = 250
Расход = 200
Расход = 150
Расход = 100
Расход = 50
```
Завершение цикла произошло в тот момент, когда значение rashod стало равнятся нулю, т.к в питоне 0 идентифицируется как False.
## 4.2 Символьная строка.
```py
import math
stroka = 'Расчет процесса в объекте регулирования'
i = 0
sps2 = []
while i < len(stroka):
r = 1 -2/(1 + math.exp(0.1*i))
sps2.append(r)
print('Значение в момент', i, '=', r)
i += 1
Значение в момент 0 = 0.0
Значение в момент 1 = 0.049958374957880025
Значение в момент 2 = 0.09966799462495568
Значение в момент 3 = 0.14888503362331795
Значение в момент 4 = 0.197375320224904
Значение в момент 5 = 0.2449186624037092
Значение в момент 6 = 0.2913126124515909
Значение в момент 7 = 0.3363755443363322
Значение в момент 8 = 0.3799489622552249
Значение в момент 9 = 0.421899005250008
Значение в момент 10 = 0.4621171572600098
Значение в момент 11 = 0.5005202111902354
Значение в момент 12 = 0.5370495669980353
Значение в момент 13 = 0.5716699660851172
Значение в момент 14 = 0.6043677771171636
Значение в момент 15 = 0.6351489523872873
Значение в момент 16 = 0.6640367702678489
Значение в момент 17 = 0.6910694698329307
Значение в момент 18 = 0.7162978701990245
Значение в момент 19 = 0.7397830512740043
Значение в момент 20 = 0.7615941559557649
Значение в момент 21 = 0.7818063576087741
Значение в момент 22 = 0.8004990217606297
Значение в момент 23 = 0.8177540779702878
Значение в момент 24 = 0.8336546070121553
Значение в момент 25 = 0.8482836399575129
Значение в момент 26 = 0.8617231593133063
Значение в момент 27 = 0.874053287886007
Значение в момент 28 = 0.8853516482022625
Значение в момент 29 = 0.8956928738431645
Значение в момент 30 = 0.9051482536448664
Значение в момент 31 = 0.9137854901178277
Значение в момент 32 = 0.9216685544064713
Значение в момент 33 = 0.9288576214547277
Значение в момент 34 = 0.935409070603099
Значение в момент 35 = 0.9413755384972874
Значение в момент 36 = 0.9468060128462683
Значение в момент 37 = 0.9517459571646616
Значение в момент 38 = 0.9562374581277391
pylab.plot(sps2, label = 'Сигнал на выходе')
[<matplotlib.lines.Line2D object at 0x0000023CE271BC50>]
pylab.show()
```
![график2](ris2.png)
## 4.3 Цикл определения, является ли число простым.
```py
chislo = 267
kandidat = chislo//2
while kandidat > 1:
if chislo % kandidat == 0:
print(chislo, 'имеет множитель', kandidat)
break
kandidat -= 1
else:
print(chislo, 'Является простым!')
267 имеет множитель 89
```
Дополнение:
```py
chislo=list(range(250,301))
for i in chislo:
kandidat =i // 2
while kandidat > 1:
if i%kandidat == 0:
print(i, ' имеет множитель ', kandidat)
break
kandidat -= 1
else:
print(i, ' является простым!')
250 имеет множитель 125
251 является простым!
252 имеет множитель 126
253 имеет множитель 23
254 имеет множитель 127
255 имеет множитель 85
256 имеет множитель 128
257 является простым!
258 имеет множитель 129
259 имеет множитель 37
260 имеет множитель 130
261 имеет множитель 87
262 имеет множитель 131
263 является простым!
264 имеет множитель 132
265 имеет множитель 53
266 имеет множитель 133
267 имеет множитель 89
268 имеет множитель 134
269 является простым!
270 имеет множитель 135
271 является простым!
272 имеет множитель 136
273 имеет множитель 91
274 имеет множитель 137
275 имеет множитель 55
276 имеет множитель 138
277 является простым!
278 имеет множитель 139
279 имеет множитель 93
280 имеет множитель 140
281 является простым!
282 имеет множитель 141
283 является простым!
284 имеет множитель 142
285 имеет множитель 95
286 имеет множитель 143
287 имеет множитель 41
288 имеет множитель 144
289 имеет множитель 17
290 имеет множитель 145
291 имеет множитель 97
292 имеет множитель 146
293 является простым!
294 имеет множитель 147
295 имеет множитель 59
296 имеет множитель 148
297 имеет множитель 99
298 имеет множитель 149
299 имеет множитель 23
300 имеет множитель 150
```

Двоичные данные
TEMA5/ris1.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 37 KiB

Двоичные данные
TEMA5/ris2.png Обычный файл

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 16 KiB

119
TEMA5/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,119 @@
# Общее контрольное задание по теме 5
Соловьёва Екатерина, А-01-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
•Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
•Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
•Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
# 1.
```py
import string
strk = 'Winter is coming'
for i in strk.lower():
n = string.ascii_lowercase.find(i)
if n >= 0:
print(f'Порядковый номер буквы {i} в английском алфавите: {n+1}')
Порядковый номер буквы w в английском алфавите: 23
Порядковый номер буквы i в английском алфавите: 9
Порядковый номер буквы n в английском алфавите: 14
Порядковый номер буквы t в английском алфавите: 20
Порядковый номер буквы e в английском алфавите: 5
Порядковый номер буквы r в английском алфавите: 18
Порядковый номер буквы i в английском алфавите: 9
Порядковый номер буквы s в английском алфавите: 19
Порядковый номер буквы c в английском алфавите: 3
Порядковый номер буквы o в английском алфавите: 15
Порядковый номер буквы m в английском алфавите: 13
Порядковый номер буквы i в английском алфавите: 9
Порядковый номер буквы n в английском алфавите: 14
Порядковый номер буквы g в английском алфавите: 7
```
# 2.
```py
spis = ['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом']
if val in spis:
print(f'{val} есть в списке')
else:
print(f'{val} нет в списке')
список есть в списке
valu = 'кот'
if valu in spis:
print(f'{valu} есть в списке')
else:
print(f'{valu} нет в списке')
кот нет в списке
```
# 3.
```py
stud_spis = ['Лыкова', 'Соловьёва', 'Коваленко','Голощапов']
stud_ocen =[4.9, 4.4, 4.6, 4.8]
stud_spis2 = ['Соловьёва', 'Голощапов', 'Лыкова', 'Коваленко']
stud_ocen2 = [4.3, 4.8, 4.2, 4.9]
nam = input('Введите фамилию студента:')
if nam in stud_spis and stud_spis2:
print(f'Средний балл за летнюю сессию: ', stud_ocen[stud_spis.index(nam)])
print(f'Средний балл за зимнюю сессию: ', stud_ocen2[stud_spis2.index(nam)])
else:
print(f'Студент отсутствует в списке')
Введите фамилию студента:Соловьёва
Средний балл за летнюю сессию: 4.4
Средний балл за зимнюю сессию: 4.3
Введите фамилию студента:Цветкова
Студент отсутствует в списке
```

33
TEMA5/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,33 @@
# Индивидуальное контрольное задание по теме 5
Соловьёва Екатерина, А-01-23
## Задание
11. Создайте символьную строку с текстом: «я, великий и могучий юноша-вождь с мечом и щи-том захватил и объединил эфесское царство». Напишите инструкции, позволяющие определить, каких букв русского алфавита нет в этой строке.
## Решение
```py
stroka = 'я, великий и могучий юноша-вождь с мечом и щитом захватил и объединил эфесское царство'
RusAlph = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
found_letters = set()
for x in stroka:
if x in RusAlph:
found_letters.add(x)
missing_letters = []
for i in RusAlph:
if i not in found_letters:
missing_letters.append(i)
print(f'Буквы, которых нет в строке: {missing_letters}')
Буквы, которых нет в строке: ['ё', 'п', 'ы']
```

11
TEMA6/4.5.py Обычный файл
Просмотреть файл

@@ -0,0 +1,11 @@
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()

8
TEMA6/4.6.py Обычный файл
Просмотреть файл

@@ -0,0 +1,8 @@
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()

4
TEMA6/4.7.py Обычный файл
Просмотреть файл

@@ -0,0 +1,4 @@
fp = open('zapis3.txt', 'r')
lines = fp.readlines()
print("readlines():", lines)
fp.close()

22
TEMA6/4.9.py Обычный файл
Просмотреть файл

@@ -0,0 +1,22 @@
import pickle #это модуль в Python для сериализации и десериализации объектов. Он преобразует объекты Python в поток байтов (сериализация) и обратно (десериализация)
mnoz1={'pen','book','pen','iPhone','table','book'} #если подать на вывод, будет только 'book', 'iPhone', 'table', 'pen'
fp = open('zapis6.mnz','wb')
pickle.dump(mnoz1, fp) #функция dump принимает объект и сериализует в поток байтов
fp.close()
fp = open('zapis6.mnz', 'rb')
mnoz2 = pickle.load(fp); mnoz2 #метод чтения объекта из бинарного файла
{'pen', 'iPhone', 'book', 'table'} #содержимое совпадает, но в разном порядке
fp.close()
fp = open('zapis7.2ob', 'wb')
pickle.dump(mnoz1, fp)
sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]]
pickle.dump(sps3,fp)
fp.close()
fp = open('zapis7.2ob', 'rb')
obj1 = pickle.load(fp); obj1 #читает первый
obj2 = pickle.load(fp); obj2 #читает второй

26
TEMA6/5.py Обычный файл
Просмотреть файл

@@ -0,0 +1,26 @@
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
sys.stdin
while True:
try:
line = input()
print(line)
except EOFError:
break
fd.close()
sys.stdin = tmp_in

0
TEMA6/OPLATA.dbf Обычный файл
Просмотреть файл

1
TEMA6/Stroka.txt Обычный файл
Просмотреть файл

@@ -0,0 +1 @@
запись строки в файл

331
TEMA6/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,331 @@
# Отчёт по теме 6
Соловьёва Екатерина А-01-23
## 1 Запуск интерактивной оболочки IDLE
```py
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\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='/',end='***'); print('____')
Значение температуры = /234.5***____
print()
print(""" Здесь может выводиться
большой текст,
занимающий несколько строк""")
Здесь может выводиться
большой текст,
занимающий несколько строк
print("Здесь может выводиться",
"большой текст,",
"занимающий несколько строк")
Здесь может выводиться большой текст, занимающий несколько строк
```
* Тройные кавычки сохраняют структуру многострочного текста
## 2.3 Вывод с использованием метода write объекта sys.stdout
```py
import sys
sys.stdout.write('Функция write')
Функция write13
sys.stdout.write('Функция write\n')
Функция write
14
```
## 2 Ввод данных с клавиатуры
```py
Введите пароль:1234
print(psw)
1234
type(psw)
<class 'str'>
while True:
znach=float(input('Задайте коэф.усиления = '))
if znach<17.5 or znach>23.8:
print('Ошибка!')
else:
break
Задайте коэф.усиления = 15.4
Ошибка!
Задайте коэф.усиления = 21.6
print(znach)
21.6
import math
print(eval(input('введите выражение для расчета = ')))
введите выражение для расчета = math.log10(23/(1+math.exp(-3.24)))
1.34504378689765
```
## 4 Ввод-вывод при работе с файлами
## 4.1 Функции для работы с путем к файлу
```py
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.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)#проверяет наличие файла в рабочем каталоге
True
os.path.isfile(os.path.dirname(fil)+'fil1.txt')#проверяет, что по указанному пути существует файл
False
```
## 4.2. Общая схема работы с файлом
Для обмена данными с файлом необходимо выполнить следующие операции:
* Открытие файла с указанием его имени и цели (чтение, запись, добавление данных);
* Выполнение одной или нескольких операций обмена данными с файлом;
* Закрытие файла.
## 4.3. Открытие файла для записи или чтения данных – функция open.
```py
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']
```
Для второго аргумента «mode=…» могут быть заданы следующие значения:
* w – запись с созданием нового файла или перезапись существующего файла,
* w+ - чтение и запись/перезапись файла,
* r – только чтение (это значение - по умолчанию),
* r+ - чтение и/или запись в существующий файл,
* a – запись в конец существующего файла или, если его нет, запись с созданием файла,
* a+ - то же, что и в «a», но с возможностью чтения из файла.
В зависимости от значения этого аргумента тип создаваемой файловой переменной может быть разным.
При открытии бинарного файла к указанным выше буквам в аргументе-цели надо добавить сим-вол «b».
```py
fp1=open(drkt+'\\zapis2.bin',mode='wb+')
type(fp1)
<class '_io.BufferedRandom'>
```
## 4.4. Закрытие файла.
```py
fp.close();fp1.close()
```
## 4.5 Запись информации в файл с помощью метода write
```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
```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()
```
Содержимое текстового файла:
```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()
```
Содержимое текстового файла:
```txt
Иванов И. 1
Петров П. 2
Сидоров С. 3
```
## 4.6 Первый способ чтения информации из текстового файла
```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']
print(sps)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
```
## 4.7 Чтение информации из файла с помощью метода read
```py
fp = open('zapis3.txt')
stroka1 = fp.read(12)
stroka2 = fp.read()
fp.close()
print(stroka1)
[1, 2, 3, 4]
print(stroka2)
[5, 6, 7, 8]
[9, 10, 11, 12]
```
## 4.8 Чтение информации с помощью методов readline и readlines
```py
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']
```
## 4.9 Ввод-вывод объектов с использованием функций из модуля pickle
```py
import pickle
mnoz1={'pen','book','pen','iPhone','table','book'}
fp = open('zapis6.mnz','wb')
pickle.dump(mnoz1,fp)
fp.close()
```
```txt
Содержание файла zapis6.mnz: 耄锣 鐨谆楐桯湥钌մ慢汥钌Ͱ敮钌Ѣ潯殔逮
```
```py
fp=open('zapis6.mnz','rb')
mnoz2=pickle.load(fp)
fp.close()
mnoz2
{'book', 'iPhone', 'pen', 'table'}
mnoz1 == mnoz2
True
```
Множество в Python автоматически удаляет все дубликаты и не сохраняет порядок элементов, поэтому mnoz2 не совпадает с тем, что было задано при создании mnoz1
```py
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()
print(obj1,obj2)
{'book', 'iPhone', 'pen', 'table'} [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]]
print(mnoz1,sps3)
{'iPhone', 'table', 'pen', 'book'} [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]]
```
## 5 Перенаправление потоков ввода и вывода данных
```py
import sys #это импорт встроенного модуля sys, который предоставляет доступ к системным параметрам и функциям, связанным с интерпретатором Python
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
sys.stdin
<_io.TextIOWrapper name='Stroka.txt' mode='r' encoding='cp1251'>
while True:
try:
line = input()
print(line)
except EOFError:
break
запись строки в файл
fd.close()
sys.stdin = tmp_in
```

61
TEMA6/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,61 @@
# Общее контрольное задание по теме 6
Соловьёва Екатерина, А-01-23
## Задание
Придумайте инструкции и запишите их в файл с расширением .py , которые выполняют следующие операции:
* Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, представленными в виде символьных строк.
* Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
* Записывается кортеж в бинарный файл.
* Записывается в этот же файл список и закрывается файл.
* Открывается этот файл для чтения и считывает из него данные в 2 новых объекта.
* Проверяется на совпадение новых объектов с исходными и выводится соответствующее сообщение.
* Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
## Решение
```py
import pickle
import random
kort = tuple(str(random.randint(6, 56)) for _ in range(125))
spis = ['Соловьёва', 'Лыкова', 'Филиппова', 'Лазарев', 'Коваленко']
fp = open('zapis8.mnz','wb')
pickle.dump(kort,fp)
pickle.dump(spis,fp)
fp.close()
fp = open('zapis8.mnz','rb')
obj1 = pickle.load(fp)
obj2 = pickle.load(fp)
if obj1 == kort:
print('Объекты совпадают')
else: print('Объекты не совпадают')
if obj2 == spis:
print('Объекты совпадают')
else: print('Объекты не совпадают')
lists = {}
for i in range(0, 125, 5):
lists[f'list{i//5 + 1}'] = list(obj1[i:i+5])
```
Вывод программы:
```py
Объекты совпадают
Объекты совпадают
```

26
TEMA6/task.py Обычный файл
Просмотреть файл

@@ -0,0 +1,26 @@
import pickle
import random
kort = tuple(str(random.randint(6, 56)) for _ in range(125))
spis = ['Соловьёва', 'Лыкова', 'Филиппова', 'Лазарев', 'Коваленко']
fp = open('zapis8.mnz','wb')
pickle.dump(kort,fp)
pickle.dump(spis,fp)
fp.close()
fp = open('zapis8.mnz','rb')
obj1 = pickle.load(fp)
obj2 = pickle.load(fp)
if obj1 == kort:
print('Объекты совпадают')
else: print('Объекты не совпадают')
if obj2 == spis:
print('Объекты совпадают')
else: print('Объекты не совпадают')
lists = {}
for i in range(0, 125, 5):
lists[f'list{i//5 + 1}'] = list(obj1[i:i+5])

0
TEMA6/zapis1.txt Обычный файл
Просмотреть файл

0
TEMA6/zapis2.bin Обычный файл
Просмотреть файл

3
TEMA6/zapis3.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,3 @@
[1, 2, 3, 4]
[5, 6, 7, 8]
[9, 10, 11, 12]

1
TEMA6/zapis4.txt Обычный файл
Просмотреть файл

@@ -0,0 +1 @@
Иванов И. 1Петров П. 2Сидоров С. 3

3
TEMA6/zapis5.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,3 @@
Иванов И.;1
Петров П.;2
Сидоров С.;3

Двоичные данные
TEMA6/zapis6.mnz Обычный файл

Двоичный файл не отображается.

Двоичные данные
TEMA6/zapis7.2ob Обычный файл

Двоичный файл не отображается.

Двоичные данные
TEMA6/zapis8.mnz Обычный файл

Двоичный файл не отображается.