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

..

37 Коммитов

Автор SHA1 Сообщение Дата
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
21 изменённых файлов: 2664 добавлений и 7 удалений

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

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

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

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

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

@@ -0,0 +1,285 @@
# Отчёт по Теме 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()
```
попробую применить функции 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()
```
## 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
```