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

...

39 Коммитов
main ... main

Автор SHA1 Сообщение Дата
EfimovaLA 2ba0587fc8 правки
20 часов назад
EfimovaLA f495b11f37 правки
20 часов назад
EfimovaLA c48cf5e6c3 добавлено ИКЗ
20 часов назад
EfimovaLA db74970d34 Изменил(а) на 'TEMA5/report5.md'
21 часов назад
EfimovaLA 1d12db06ef Изменил(а) на 'TEMA5/report5.md'
21 часов назад
EfimovaLA 9eca795eb1 Изменил(а) на 'TEMA5/report5.md'
21 часов назад
EfimovaLA 9a8c741f38 Изменил(а) на 'TEMA5/task.md'
5 дней назад
EfimovaLA 8956086421 добавлено ОКЗ
5 дней назад
EfimovaLA ec0c8dfec5 добавлен отчет по теме 5
5 дней назад
EfimovaLA a0f0b6dd68 Изменил(а) на 'TEMA4/test4.md'
2 недель назад
EfimovaLA 7777e77919 Изменил(а) на 'TEMA4/test4.md'
2 недель назад
EfimovaLA 0335d58ef1 добавлено ИКЗ
2 недель назад
EfimovaLA 3c9dc57a3f Изменил(а) на 'TEMA3/task.md'
2 недель назад
EfimovaLA d6eb1fb1a5 Изменил(а) на 'TEMA3/task.md'
2 недель назад
EfimovaLA 16eb2905a1 добавлено ИКЗ
2 недель назад
EfimovaLA 0146b8fafc Изменил(а) на 'TEMA3/report3.md'
2 недель назад
EfimovaLA ab9dbc828b Изменил(а) на 'TEMA3/report3.md'
2 недель назад
EfimovaLA 5ea29d4520 Изменил(а) на 'TEMA3/report3.md'
2 недель назад
EfimovaLA 8c7a3711d1 Изменил(а) на 'TEMA4/report4.md'
2 недель назад
EfimovaLA 4c8e060825 добавлен Ris5
2 недель назад
EfimovaLA 9fcb7df078 Изменил(а) на 'TEMA4/task4.md'
2 недель назад
EfimovaLA 39d81c5e3b добавлено ОКЗ
2 недель назад
EfimovaLA df133e0f56 добавлен отчет
2 недель назад
EfimovaLA d23d38f8e1 добавлено ОКЗ
2 недель назад
EfimovaLA 1893694667 добавлен отчет по теме 3
2 недель назад
EfimovaLA b1aa4b933e Изменил(а) на 'TEMA2/task2.md'
4 недель назад
EfimovaLA 22dc2ffd3b Изменил(а) на 'TEMA2/task2.md'
4 недель назад
EfimovaLA 739d4f01a8 Изменил(а) на 'TEMA2/task22.md'
4 недель назад
EfimovaLA c381becb60 Изменил(а) на 'TEMA2/task22.md'
4 недель назад
EfimovaLA 6c687dfbe5 добавлено индивидуальное контрольное задание тема 2
4 недель назад
EfimovaLA 074b8a3a2a Удалить 'TEMA2/task2.md.txt'
4 недель назад
EfimovaLA df41327c2c добавлено индивидуальное контрольное задание
4 недель назад
EfimovaLA e40e07b24a Изменил(а) на 'TEMA2/task.md'
4 недель назад
main-py11 7f7493652d Добавлено общее контрольное задание по теме 2
4 недель назад
main-py11 2cb3ef0762 добавлено общее контрольное задание
4 недель назад
main-py11 966b203ebb исправлен report по теме 2
1 месяц назад
main-py11 6a9a6d8092 добавлен report по теме 2
1 месяц назад
EfimovaLA 6f120c1038 Изменил(а) на 'TEMA1/report/report.md'
2 месяцев назад
EfimovaLA 655623404b Тема1/report.md
2 месяцев назад

Двоичные данные
TEMA1/report/figure0.PNG

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

После

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

Двоичные данные
TEMA1/report/figure1.PNG

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

После

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

Двоичные данные
TEMA1/report/figure2.PNG

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

После

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

Двоичные данные
TEMA1/report/figure3.PNG

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

После

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

Двоичные данные
TEMA1/report/figure4.PNG

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

После

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

Двоичные данные
TEMA1/report/figure5.PNG

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

После

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

Двоичные данные
TEMA1/report/figure6.PNG

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

После

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

Двоичные данные
TEMA1/report/figure7.PNG

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

После

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

@ -0,0 +1,6 @@
#Программа по Теме 1 Ефимова Людмила Алексеевна
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\u207-03\\Desktop\\ПОАС\\python-labs\\TEMA1\\report')

@ -0,0 +1,88 @@
# Отчет по теме 1
Ефимова Людмила, А-03-23
## 1 Изучение среды IDLE
## 1.1 Знакомство с Python 3.4 (command line)
```
>>> print('Hello')
Hello
>>> h=input('Your name=')
Your name=Lyudmila
```
![Скриншот окна программы в командной строке](figure0.PNG)
## 1.2 Изучение графической оболочки IDLE
```
import os
os.chdir('C:\\Users\\u207-03\\Desktop\\ПОАС\\python-labs\\TEMA1\\report')
```
Скриншоты настройки среды.
![Скриншот окна настройки шрифта](figure1.PNG)
![Скриншот окна настройки окна](figure2.PNG)
## 1.3 Создание программы по пунктам 3,4,8:
Создан файл pr0:
```
#Программа по Теме 1 Ефимова Людмила Алексеевна
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\u207-03\\Desktop\\ПОАС\\python-labs\\TEMA1\\report')
```
Вывод программы:
```
================== RESTART: C:\Users\u207-03\Desktop\ПОАС\python-labs\TEMA1\report\pr0.py ==================
Hello
Your name=Ludmila
```
## 1.4 Проверка программы prb1:
```
import prb1
Как Вас зовут? Людмила
Привет, Людмила
```
## 1.5 Изучение каталога __pycache__
Открыла каталог и запустила в текстовом редакторе файл pr0.cpython-311.pyc:
![Скриншот окна фрагмента файла pr0.cpython-311.pyc](figure3.PNG)
Данный файл нужен для исполнения кода виртуальной машиной python.
Файл расширения .pyc это скомпилированный файл для изначального кода. В нем содержится кеш выполнения программы
## 1.6 Изучение команды help
В среде пограммирования введены команды help(print) и help(input)
![Скриншот окна фрагмента файла pr0.cpython-311.pyc](figure4.PNG)
Получили вывод - инструкции по работе с командами.
## 1.7 Выполнение функции 15
В редакторе открыла файл prb1 и запустила его.
Получен вывод:
```
============== RESTART: C:\Users\u207-03\Desktop\ПОАС\python-labs\TEMA1\report\prb1.py =============
Как Вас зовут? Людмила
Привет, Людмила
```
Открыт файл tdemo_chaos, изучено его содержимое.
![Скриншот окна с кодом программы](figure5.PNG)
После запуска получен вывод программы:
![Скриншот окна с выводом программы](figure6.PNG)
Запущен пример программы Часы (Clock) из пакета Turtle:
![Скриншот окна с примером часов](figure7.PNG)

@ -3,7 +3,6 @@
# Date: 2009-06-24
# A demonstration of chaos
from turtle import *
N = 80
@ -53,7 +52,6 @@ def main():
for s in range(100):
setworldcoordinates(0.5*s,-0.1, N+1, 1.1)
return "Done!"
if __name__ == "__main__":
main()
mainloop()

@ -0,0 +1,439 @@
# Отчет по теме 2
Ефимова Людмила, А-03-23
## Базовые типы объектов
## 1. Открыла оболочку IDLE и установила рабочий каталог.
В оболочке указала актуальный рабочий каталог. Создала рабочий протокол.
## 2. Изучение простых объектов
Рассмотрим операцию присваивания значения переменным
```py
f1=16; f2=3
f1,f2
(16, 3)
```
Используем команду dir(), чтобы узнать какие объекты существуют в среде на данный момент
```py
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
```
Получаем атрибуты объекта f1 с помощью dir, определяем классовую принадлежность объекта f2 с помощью команды type(), удалили объекты f1 иf2 с помощью команды del и проверила их удаление.
```py
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', 'numerator', 'real', 'to_bytes']
type(f2)
<class 'int'>
del f1,f2
f1,f2
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
f1,f2
NameError: name 'f1' is not defined
```
## 3. Изучение правил наименования объектов в Python.
```py
gg1=1.6 #значение в виде вещественного числа
hh1='Строка' #значение в виде символьной строки
73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
SyntaxError: invalid decimal literal
and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
SyntaxError: invalid syntax
```
## 4. Просмотр ключевых слов.
Просмотрели ключевые слова и сохранили их список в переменную lis
```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']
lis =keyword.kwlist
```
## 5. Изучение встроенных идентификаторов
Получила список встроенных идентификаторов с помощью команды dir(builtins)
```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', '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', '_', '__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']
```
Изучила назначение функций abs, len, max, min, pow, round, sorted, sum, zip и применила их
```py
abs(-200) # модуль числа
200
len('Hellooo') # длина строки
7
min(0, -9, 100) # поиск минимального числа
-9
max(0, -9, 100) # поиск максимального числа
100
pow(2, 5) # возведение числа в степень
32
round(2.9879, 2) # округление первого числа до количества знаков, переданного во втором аргументе
2.99
sorted([1,6,100,-9,78]) # сортирует числа списка по возрастанию
[-9, 1, 6, 78, 100]
num = [1,2,3,4]
summa = sum(num) # вычисляет сумму элементов списка
summa
10
list(zip([1,2,3],[4,5,6])) # объединяет объекты попарно
[(1, 4), (2, 5), (3, 6)]
```
## 6. Проверка чувствительности регистру
Убедились что объекты чувствительны к регистру
```py
Gg1=45
Gg1, gg1
(45, 1.6)
```
## 7. Изучение базовых типов объектов
Изучили основные простые числовые типы объектов
```py
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)
```
Работа со строками
```py
ss1='Это - строка символов'
ss1="Это - строка символов"
ss1
'Это - строка символов'
```
Внутри строки можно использовать “экранированные последовательности”
``` py
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n <Ефимова Л.А.>'
print(ss1b)
Меня зовут:
<Ефимова Л.А.>
```
Задание многострочных строк через тройные кавычки
```py
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
```
Обращение к частям строки с помощью индекса символа по порядку.
``` 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] # заменили 17 на -4
'омсаот '
ss1[4]='=' # Будет диагностика!
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
ss1=ss1[:4]+'='+ss1[5:]
print(ss1)
Это = строка символов
```
Проделаем тоже самое со строкой ss1b
```py
ss1b
'Меня зовут: \n <Ефимова Л.А.>'
ss1b[3]
'я'
ss1b[3-2]
'е'
ss1b[-3]
'А'
ss1b[-3:]
'А.>'
ss1b[0:-1]
'Меня зовут: \n <Ефимова Л.А.'
ss1b[3:-3]
'я зовут: \n <Ефимова Л.'
ss1b[::-1]
'>.А.Л авомифЕ< \n :тувоз янеМ'
```
### 7.1. Самостоятельно создала объекты разных типов.
```py
str = '10' + 'aaaaa'
type(str)
<class 'str'>
str
'10aaaaa'
x = 100
type(x)
<class 'int'>
x
100
y = 0.1
type(y)
<class 'float'>
y
0.1
c = 1-1j
c
(1-1j)
type(c)
<class 'complex'>
t = True
type(t)
<class 'bool'>
```
## 8. Изучение сложных типов объектов
### 8.2 Список
Список – упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен.
```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] # ввод на нескольких строках
spis1[-1] # использование индексов
(5-9j)
stup[-8::2]
[0, 1, 1, 1]
spis1[1]='Список' # элементы списка можно изменить
spis1
[111, 'Список', (5-9j)]
len(spis1) # узнать длину списка
3
```
Методы объекта находятся в списке его атрибутов, который выводится с помощью уже известной функции dir()
```py
help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
dir(spis1)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
```
С помощью методов объектов-списков можно добавлять и удалять элементы:
```py
spis1.append('New item') # добавление нового элемента в конец
spis1
[111, 'Список', (5-9j), 'New item']
spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
spis1.append(ss1b)
spis1
[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n <Ефимова Л.А.>']
spis1.pop(1) # удаление объекта
'Список'
spis1
[111, (5-9j), 'New item', 'Меня зовут: \n <Ефимова Л.А.>']
spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
spis2
[[111, (5-9j), 'New item', 'Меня зовут: \n <Ефимова Л.А.>'], [4, 5, 6, 7]]
spis2[0][1] #обращение к элементу списка spis1
(5-9j)
spis2[0][1]=78 #Убедитесь, что значение элемента заменено на 78
spis2
[[111, 78, 'New item', 'Меня зовут: \n <Ефимова Л.А.>'], [4, 5, 6, 7]]
```
Другие методы объектов-списков:
```py
list = [0, 0, 0, 0, 0]
list.insert(1,4) # добавление 4 на 1 место
list
[0, 4, 0, 0, 0, 0]
list.remove(4) # удаление первого элемента равного 4
list
[0, 0, 0, 0, 0]
list = [1, 2, 3, 4]
list.extend(list[:4]) # продление списка на первые 4 элемента
list
[1, 2, 3, 4, 1, 2, 3, 4]
list.sort() # сортировка списка
list
[1, 1, 2, 2, 3, 3, 4, 4]
list.reverse() # противоположный порядок
list
[4, 4, 3, 3, 2, 2, 1, 1]
list.count(1) # количество вхождений 1 в список
2
list.index(1) # возвращает индекс элемента соответствующего указанному
6
```
### 8.2 Кортежи
```py
kort1=(222,'Kortezh',77+8j)
kort1
(222, 'Kortezh', (77+8j))
kort1= kort1+(1,2) # изменить кортеж нельзя, но можно переопределить
kort1
(222, 'Kortezh', (77+8j), 1, 2)
kort1= kort1+(ss1b,) # добавление элемента в кортеж
kort1
(222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n <Ефимова Л.А.>')
kort2=kort1[:2]+kort1[3:] # переопределение кортежа с удалением комплексного элемента
kort2
(222, 'Kortezh', 1, 2, 'Меня зовут: \n <Ефимова Л.А.>')
kort1.index(2)
4
kort1.count(222)
1
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
```
### 8.3 Объект-словарь
Содержанием является совокупность пар «ключ (key)»:«значение (value)».
В качестве ключей могут использоваться неизменяемые типы объектов. Значения – объекты любого типа
```py
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
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]
```
Элементы словаря также могут быть словарями
```py
dic2={1:'mean',2:'standart deviation',3:'correlation'}
dic3={'statistics':dic2,'POAS':['base','elementary','programming']}
dic3['statistics'][2]
'standart deviation'
```
Можно создавать словарь из списка с элементами кортежами и из двух списков
```py
dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)])
dic4
{1: ['A', 'B', 'C'], 2: [4, 5], 'Q': 'Prim', 'Stroka': 'Меня зовут: \n <Ефимова Л.А.>'}
dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b])) # создание словарей из просто двух списков
dic5
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n <Ефимова Л.А.>'}
```
Создадим объект-кортеж с 7 элементами и объект-список с 5 элементами. Число ключей должно быть равно числу значений, в данном случае словарь создастся с количеством элементов равным наименьшей из длин списка ключей или значений.
```py
cort=(1,3,5,7,8,10,12)
spisok = ['A', 'B', 'C', 'D', 'E']
dict1 = dict(zip(cort, spisok))
dict1
{1: 'A', 3: 'B', 5: 'C', 7: 'D', 8: 'E'}
```
Словарь с описанием студентов
```py
AVTI = {"Курс I" : [22, 23, 17, 24, 30, 29, 28, 25, 23, 0, 4, 31, 30, 33, 18, 12, 27],
"Курс II" : [18, 16, 12, 15, 29, 18, 21, 23, 13, 0, 4, 20, 31, 26, 16],
"Курс III" : [17, 12, 0, 6, 17, 15, 19, 19, 0, 0, 5, 17, 22, 18, 12],
"Курс IV" : [27, 16, 0, 13, 17, 15, 19, 20, 0, 0, 2, 15, 18, 16, 17]}
AVTI["Курс III"][5]
15
```
### 8.4. Объекты-множества
Это неупорядоченная совокупность неповторяющихся элементов. Могут быть разных типов, но только неизменяемых
```py
mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
mnoz1
{'двигатель', 'линия связи', 'микропроцессор', 'датчик'}
len(mnoz1)
4
'датчик' in mnoz1 # проверка наличия элемента
True
mnoz1.add('реле') # добавление элемента
mnoz1.remove('линия связи') # удаление элемента
mnoz1
{'микропроцессор', 'двигатель', 'реле', 'датчик'}
```
Придумала свой объект множество
```py
mnoz2 = {123, 'text', (1,2,3)}
mnoz2.add('ffff')
len(mnoz2)
4
mnoz2
{123, 'text', (1, 2, 3), 'ffff'}
mnoz2.remove('text')
mnoz2
{123, (1, 2, 3), 'ffff'}
```
## 9. Завершила работу со средой.
Сохранила файлы отчета и завершила сеанс работы со средой.

@ -0,0 +1,51 @@
# Общее контрольное задание по теме 2
Ефимова Людмила Алексеевна, А-03-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: • Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
• Создать переменную со значением, совпадающим с первой буквой из familia.
• Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
• Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
• Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
• Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
• Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
• Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```py
familia = "Efimova"
first = familia[0] # значение первая буква из familia
first
'E'
import keyword
sp_kw = keyword.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") # удаляем элемент 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 = ("Lyudmila", "Maria", "Danil", "Dima")
type(kort_nam)
<class 'tuple'>
kort_nam += ("Artem", "Ilya")
kort_nam
('Lyudmila', 'Maria', 'Danil', 'Dima', 'Artem', 'Ilya')
kort_nam.count("Dima")
1
dict_bas = {'строка' : familia, 'список' : sp_kw, 'кортеж' : kort_nam} # создаем словарь
dict_bas
{'строка': 'Efimova', 'список': ['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'], 'кортеж': ('Lyudmila', 'Maria', 'Danil', 'Dima', 'Artem', 'Ilya')}
```

@ -0,0 +1,22 @@
# Индивидуальное контрольное задание
Ефимова Людмила, А-03-23
## Задание вариант 17
Создайте два списка: один – с фамилиями 3-х студентов вашей группы, другой – с 5 числами: 11,12,13,14,15.
Напишите инструкцию создания словаря, в котором фамилии студентов были бы ключами, а числа – значениями.
Отобразите получившийся словарь.
Отобразите его ключи с упорядочением по фамилиям студентов.
## Решение
```py
familii = ['Ефимова', 'Девятова','Беженарь']
num = [11, 12, 13, 14, 15]
dic = dict(zip(familii, num))
print(dic)
{'Ефимова': 11, 'Девятова': 12, 'Беженарь': 13}
sorted(dic.keys())
['Беженарь', 'Девятова', 'Ефимова']
```

@ -0,0 +1,664 @@
# Отчет по теме 3
Ефимова Людмила, А-03-23
## 1. Запустила оболочку IDLE, создала рабочий протокол
## 2. Преобразование простых базовых типов объектов
### 2.1. Преобразовали объекты в логческий тип
```py
logiz1=bool(56) # целые числа, кроме 0, преобразуются в True
print(logiz1, ' ', type(logiz1))
True <class 'bool'>
logiz2=bool(0) # 0 преобразуется в False
print(logiz2, ' ', type(logiz2))
False <class 'bool'>
logiz3=bool("Beta") # не пустая строка преобразуется в True
print(logiz3, ' ', type(logiz3))
True <class 'bool'>
logiz4=bool("") # пустая строка преобразуется в False
print(logiz4, ' ', type(logiz4))
False <class 'bool'>
```
### 2.2. Преобразование в целое десятичное число
Функция int(<Объект>[,<Система счисления, в которой определен
объект>]) позволяет преобразовать объект в целое десятичное число
```py
tt1=int(198.6) #Отбрасывается дробная частьtt1
198
tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная
tt2
-76
tt3=int("B",16)
tt3
11
tt4=int("71",8)
tt4
57
tt5=int("98.76") # Число передающееся в виде строки должно быть целым
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
```
С помощью функции 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.3. Преобразование десятичных чисел в другие системы счисления
С помощью команд bin oct hex преобразовали объекты в строку с двоичным, вомьмеричным, шестнадцатиричным
представлениями. С помощью команды int() сделали обратные преобразования.
```py
hh=123
dv1=bin(hh) #Преобразование в строку с двоичным представлением
dv1
'0b1111011'
vos1=oct(hh) # Преобразование в строку с восьмеричным представлением
vos1
'0o173'
shs1=hex(hh) # Преобразование в строку с шестнадцатеричным представлением
shs1
'0x7b'
int(dv1, 2)
123
int(vos1, 8)
123
int(shs1, 16)
123
```
## 3. Преобразование более сложных элементов
### 3.1. Преобразование в строку символов
Преобразовали объект в строку функцией str(<Объект>)
```py
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}"
```
### 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']
spis4=list({"A":1, "B":2, "C":9}.values()) #Преобразование значений в список
spis4
[1, 2, 9]
spis5=list({"A":1,"B":2,"C":9}.items()) #Преобразование и ключей и значений в список
spis5
[('A', 1), ('B', 2), ('C', 9)]
```
### 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
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'shs1', 'spis1', 'spis2', 'spis3', 'spis4', 'spis5', 'spis6', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1']
```
Создадим строку со своей фамилией и инициалами преобразуем ее в список, затем список в кортеж, затем в строку
```py
strk1 = "ЕфимоваЛА"
spis = list(strk1)
spis
['Е', 'ф', 'и', 'м', 'о', 'в', 'а', 'Л', 'А']
kort = tuple(spis)
kort
('Е', 'ф', 'и', 'м', 'о', 'в', 'а', 'Л', 'А')
strk2 = str(kort)
"('Е', 'ф', 'и', 'м', 'о', 'в', 'а', 'Л', 'А')"
```
## 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 #Деление двух целых чисел – проверьте тип объекта a!
print(a, ' ', type(a))
3.9555555555555557 <class 'float'>
```
### 4.4. Деление c округлением вниз
```py
b = 178 // 45 # 3.956 округляется вниз, т.е. до 3
b
3
type(b)
<class 'int'>
c = -24.6 // 12.1 # -2.033 округляется вниз, т.е. до -3
c
-3.0
type(c)
<class 'float'>
12 // 6.5
1.0
12.0 // 5
2.0
```
### 4.5. Получение остатка от деления
```py
148%33 #Остаток от деления двух целых чисел
16
12.6%3.8 #Остаток от деления двух вещественных чисел
1.2000000000000002
```
### 4.6. Возведение в степень
```py
14**3 #Целое число возводится в целую степень
2744
e=2.7**3.6 #Вещественное число возводится в вещественную степень
e
35.719843790663525
```
С комплексными числами
```py
z1 = 1 + 1j
z2 = 2 + 2j
z1+z2
(3+3j)
z1 - z2
(-1-1j)
z1 * z2
4j
z1 / z2
(0.5+0j)
z1 ** 2
2j
z1 // 2 # Операция целочисленного деления неприменима к комплексным числам
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
z1 // 2 # Операция целочисленного деления неприменима к комплексным числам
TypeError: unsupported operand type(s) for //: 'complex' and 'int'
z1 % z2 # Операция получения остатка от деления также неприменима к комплексным числам
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
z1 % z2 # Операция получения остатка от деления также неприменима к комплексным числам
TypeError: unsupported operand type(s) for %: 'complex' and 'complex'
```
При проведении арифметических операций над числами разных типов, получается число, имеющее более сложный тип из использованных при его получении.
## 5. Операции с двоичными представлениями целых чисел
### 5.1. Двоичная инверсия
Двоичная инверсия (~). Значение каждого бита в представлении числа заменяется на
противоположное значение (0 на 1, 1 на 0)
```py
dv1=9
bin(dv1)
'0b1001'
dv2=~dv1
bin(dv2)
'-0b1010'
```
### 5.2. Двоичное «И»
Двоичное «И» - логическое умножение, побитовое совпадение двоичных представлений чисел.
```py
7&9 # 0111 и 1001 = 0001
1
bin(7)
'0b111'
bin(9)
'0b1001'
7&8 # 0111 и 1000 = 0000
0
bin(8)
'0b1000'
```
### 5.3. Двоичное «ИЛИ»
Двоичное «ИЛИ» - логическое сложение, побитовое совпадение двоичных представлений чисел, в котором 0 получается, только если оба сравниваемых разряда равны 0.
```py
7|9 # 0111 или 1001 = 1111
15
7|8 # 0111 или 1000 = 1111
15
14|5 # 1110 или 0101 = 1111
15
bin(15)
'0b1111'
```
### 5.4. Двоичное «исключаещее ИЛИ»
Двоичное «исключающее ИЛИ» - побитовое совпадение двоичных представлений чисел, в котором 0 получается, только если оба сравниваемых разряда имеют одинаковые значения.
```py
14^5 # 1110 исключающее или 0101 = 1011
11
bin(11)
'0b1011'
```
### 5.5. Поразрядный сдвиг
Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с
дополнением нулями, соответственно справа или слева
```py
h=14 #Двоичное представление = 1110
bin(h)
'0b1110'
g=h<<2 # Новое двоичное представление = 111000
bin(g)
'0b111000'
g1=h>>1 # Новое двоичное представление = 0111
bin(g1)
'0b111'
g2=h>>2 # Новое двоичное представление = 0011
bin(g2)
'0b11'
```
Операции с двоичными числами на практике
```py
a = 251
bin(a)
'0b11111011'
b = 293
bin(b)
'0b100100101'
~a
-252
bin(~a)
'-0b11111100'
a&b # 011111011 и 100100101 = 000100001
33
bin(a&b)
'0b100001'
a|b # двоичное или - 011111011 и 100100101 = 111111111
511
bin(a|b)
'0b111111111'
a ^ b # Двоичное «исключающее ИЛИ» 0 если совпадают
478
bin(a^b)
'0b111011110'
bin(a>>3) # поразрядовый сдвиг вправо на 3
'0b11111'
```
## 6. Операции при работе с последовательностями
### 6.1. Объединение последовательностей
```py
'Система '+'регулирования' #Соединение двух строк символов
'Система регулирования'
['abc','de','fg']+['hi','jkl'] # Объединение двух списков
['abc', 'de', 'fg', 'hi', 'jkl']
('abc','de','fg')+('hi','jkl') # Объединение двух кортежей
('abc', 'de', 'fg', 'hi', 'jkl')
```
### 6.2. Повторение (*)
```py
'ля-ля-ля-ля-ля-'
['ку','-']*3 #Повторение списка 3 раза
['ку', '-', 'ку', '-', 'ку', '-']
('кис','-')*4 #Повторение кортежа 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,)*7signal2
(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
stroka='Температура = %g %s %g'
stroka
'Температура = %g %s %g'
stroka % (16,' меньше ',25)
'Температура = 16 меньше 25'
stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' # вставка и сспользованием данных из словаря
stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
```
## 7. Оператор присваивания
### 7.1. Обычное присваивание значения переменной
```py
zz=-12
zz
-12
```
### 7.2. Увеличение значения переменной на заданную величину или уменьшение
Операторы += и -= позволяют увеличить или уменьшить значение переменной на заданную величину соответственно.
```py
zz+=5 # Значение zz увеличивается на 5
zz
-7
zz-=3 # Значение уменьшается на 3
zz
-10
stroka='Система'
stroka+=' регулирования' stroka+=' регулирования'
stroka
'Система регулирования'
```
### 7.3. Умножение текущего значения переменной на заданную величину или деление
Операторы /= и *= позволяют разделить или умножить значение переменной на заданную величину соответственно.
```py
zz/=2
zz
-5.0
zz*=5
zz
-12.5
str = 'ля'
str*=3 # повторение заданной строки 3 раза
str
'ляляля'
```
### 7.4. Операции деления с округлением вниз получения остатка от деления и возведения в
степень
```py
a = 6
a//=5 # целочисленное деление
a
1
b = 13
b%=6 # получение остатка от деления
b
1
c = 2
c **= 3 # возведение в степень
c
8
```
### 7.5. Множественное присваивание
Присваивать определенные значения можно сразу нескольким переменным за раз.
```py
w=v=10 # Переменным присваивается одно и то же значение
w,v
(10, 10)
n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа
n1,n2,n3
(11, -3, 'all')
n1,n2,n3= [11, 12, 13] # можно из списка
n1, n2, n3
(11, 12, 13)
n1,n2,n3= '12','rrr', 'iuuiui' # можно строки
n1, n2, n3
('12', 'rrr', 'iuuiui')
n1,n2,n3= {1: 11, 2: 12, 3: 'eeee'} # можно словарь
n1, n2, n3
(1, 2, 3)
n1,n2,n3= {11, 12, 'eeee'} # множество
n1, n2, n3
(11, 12, 'eeee')
```
## 8. Логические операции
### 8.1. Операции сравнения
```py
w == v
True
w != v
False
w +=1
w < v
False
w > v
True
w <= v
False
w>=v
True
```
### 8.2. Проверка наличия заданного элемента в последовательности или во множестве, а также
проверка наличия ключа в словаре
Наличие элемента в сложном объекте также можно проверить с помощью оператора in
```py
mnoz1={'pen','book','pen','iPhone','table','book'} # с множеством
'book' in mnoz1True
'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': ['A01-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
(a%2==1) and ("pen" in mnoz1) or (120 in dic1.values())
True
not (b < 0) or (len(mnoz1)== 4)
True
```
### 8.4. Проверка ссылок переменных на один и тот же объект
Сравнивать ссылки на объект можно с помощью оператора is.
```py
w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти
w is v
True
w1=['A','B']
v1=['A','B']
w1 is v1
False
```
В последнем случае значение False так как переменные создавались отдельно, хоть их значения и совпадают.
Они хранятся в разных ячейках памяти и их ссылки разные.
## 9. Операции с объектами, выполняемые с помощью методов
### 9.1 Методы для работы со строками
```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']
stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1
5
stroka='Микропроцессорная система управления'
stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1
5
stroka.count("с") #Подсчет числа вхождений строки “с” в stroka
4
stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
spis22=stroka.split(' ') #Возвращает список подстрок, между которыми в строке стоит заданный разделитель
spis22
['Микропроцессорная', 'система', 'управления']
stroka.upper() #Возвращает строку со всеми заглавными буквами
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
stroka3=" ".join(spis22) #Возвращает строку, собранную из элементов списка
stroka3
'Микропроцессорная система управления'
stroka3.partition("с") #Возвращает кортеж с результатами поиска «с» слева('Микропроце', 'с', 'сорная система управления')
stroka3.rpartition("с") #Возвращает кортеж с результатами поиска «с» справа
('Микропроцессорная си', 'с', 'тема управления')
```
Метод format() используется для форматирования строк по следующему принципу:
1. Если в форматированной строке не указан порядок вставки элементов, то они войдут в неё в порядке их передачи в метод,
2. Если в форматированной строке указан порядок вставки элементов, то они войдут в неё в с таким же порядком,
3. Если в форматированной строке поименно указаны позиции вставки элементов, то они войдут в неё в соответствии с ними.
```py
strk1='Момент времени {}, значение = {}'
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 = [1, 2, 3, 4, 5, 6]
spsk.pop(2) # удаление элемента по индексу, с возвращением его значения
3
spsk
[1, 2, 4, 5, 6]
spsk.append('c') # добавление элемента в конец списка
spsk
[1, 2, 4, 5, 6, 'c']
spsk.insert(2,'a') # добавление элемента на указанную позицию
spsk
[1, 2, 'a', 4, 5, 6, 'c']
spsk.count('a') # подсчет количества соответсвующих элементо
1
```
### 9.3. Методы для работы с кортежами
```py
kortezh = (1, 2, 3, 4, 5, 6, 7)
kortezh.count(3) # количество соответсвующих элементов в кортеже
1
kortezh.index(2) # вычисление индекса переданного элемента если он есть в кортеже
1
```
### 9.4. Методы для словарей и множеств
```py
dictionary = {"A" : 1, "B" : 2, "C" : 3, "D" : 4, "E" : 5}
dictionary.get("D") # Получение значения из словаря по соответствующему ему ключу
dictionary.items() # Получение списка кортежей всех пар ключ-значений в словаре
dict_items([('A', 1), ('B', 2), ('C', 3), ('D', 4), ('E', 5)])
dictionary.keys() # Получение списка всех ключей в словаре
dict_keys(['A', 'B', 'C', 'D', 'E'])
dictionary.values() # Получение списка всех значений в словаре
dict_values([1, 2, 3, 4, 5])
dictionary.pop("C") # Удаление определенной пары ключ-значение из словаря по переданному ключу
3
dictionary
{'A': 1, 'B': 2, 'D': 4, 'E': 5}
dictionary.popitem() # Удаление последней пары ключ-значение из словаря
('E', 5)
dictionary
{'A': 1, 'B': 2, 'D': 4}
dictionary.update({"A" : 5}) # Обновление словаря новыми значениями
dictionary
{'A': 5, 'B': 2, 'D': 4}
dictionary.clear() # Очистка словаря
dictionary
{}
```
Методы для работы с множествами отчасти схожи с методами словарей, однако среди них также есть и уникальные методы.
```py
mnozhestvo = {"Apple", "Orange", "Peach", "Pear"}
mnozhestvo.add("Banana") # Добавление элемента в множество
mnozhestvo
{'Banana', 'Pear', 'Peach', 'Apple', 'Orange'}
mnozhestvo2 = mnozhestvo.copy() # Копирование множества
mnozhestvo2
{'Peach', 'Banana', 'Apple', 'Orange', 'Pear'}
mnozhestvo2.remove("Apple") # Удаление элемента из множества
mnozhestvo2
{'Peach', 'Banana', 'Orange', 'Pear'}
mnozhestvo.difference(mnozhestvo2) # Сравнение двух множеств по содержимому, возвращает разницу
{'Apple'}
mnozhestvo2.clear() # Очистка множества
mnozhestvo2
set()
```
## 10. Завершение работы со средой.

@ -0,0 +1,52 @@
# Индивидуальное контрольное задание модуль 1
Ефимова Людмила, А-03-23
## Задание вариант 9
1.В каком месте инструкции и как можно написать комментарий?
После любой инструкции или на отдельной строке после знака #
2.Создайте объект-список с 10 элементами - русскоязычными названиями продуктов. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа.
Напишите инструкцию отображения списка атрибутов созданного объекта.
```py
spis = ["Помидор", "Огурец", "Сухарики","Сыр","Шоколадка","Молоко","Пицца","Чипсы","Яйца","Кофе"]
type(spis)
<class 'list'>
dir(spis)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
```
3. Удалите из списка 5 и 6 элементы, считая от первого. Определите число оставшихся элементов. Замените 4-й элемент на "трюфель". Отобразите получившийся объект.
```py
spis.remove(spis[5])
spis.remove(spis[4])
spis
['Помидор', 'Огурец', 'Сухарики', 'Сыр', 'Пицца', 'Чипсы', 'Яйца', 'Кофе']
spis[3]="трюфель"
spis
['Помидор', 'Огурец', 'Сухарики', 'трюфель', 'Пицца', 'Чипсы', 'Яйца', 'Кофе']
```
4. Преобразуйте список в кортеж. Отобразите полученный объект. Создайте новый кортеж с удалением из ранее созданного кортежа элемента "трюфель".
```py
kort=tuple(spis)
kort
('Помидор', 'Огурец', 'Сухарики', 'трюфель', 'Пицца', 'Чипсы', 'Яйца', 'Кофе')
kort_1=kort[0:3] + kort[4:] # кортеж неизменяем, создаем новый
kort_1
('Помидор', 'Огурец', 'Сухарики', 'Пицца', 'Чипсы', 'Яйца', 'Кофе')
```
5.Напишите инструкцию проверки наличия в списке элемента "молоко". Если его нет в списке, добавьте его туда, иначе - удалите его из списка.
```py
"Молоко" in spis
False
spis.append("Молоко")
spis
['Помидор', 'Огурец', 'Сухарики', 'трюфель', 'Пицца', 'Чипсы', 'Яйца', 'Кофе', 'Молоко']
```

@ -0,0 +1,79 @@
# Общее контрольно задание по теме 3
Ефисова Людмила, А-03-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
a = int("45", 8) #1 пункт
a
37
D = {"усиление":23, "запаздывание":12, "постояннаявремени":78} #2 пункт
D_key = list(D.keys())
D_values = list(D.values())
D_key, D_values
(['усиление', 'запаздывание', 'постояннаявремени'], [23, 12, 78])
D_tuple = tuple(zip(D_key, D_values)) # создали кортеж, он неизменяемый в отличие от списка
D_tuple
(('усиление', 23), ('запаздывание', 12), ('постояннаявремени', 78))
((1768//24.8)%3) ** 2.4 # 3 пункт
5.278031643091577
(~ (13 & 27) ^ 14) << 2 # 4 пункт
-32
spis = ["колебат"] * 4 # 5 пункт
spis
['колебат', 'колебат', 'колебат', 'колебат']
"аткол" in spis[1] + spis[2]
True
dir(D) # 6 пункт
['__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']
D.keys()
dict_keys(['усиление', 'запаздывание', 'постояннаявремени'])
D.value()
dict_values([23, 12, 78])
string = "Создать объект - символьную строку с текстом данного предложения." # 7 пункт
string_list = string.split(" ")
string_list
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
string_list[string_list.index("-")] = ","
string_list
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
string_list.remove('данного')
string_list
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.']
```

Двоичные данные
TEMA4/Ris1.png

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

После

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

Двоичные данные
TEMA4/Ris2.png

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

После

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

Двоичные данные
TEMA4/Ris3.png

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

После

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

Двоичные данные
TEMA4/Ris4.png

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

После

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

Двоичные данные
TEMA4/Ris5.jpg

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

После

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

@ -0,0 +1,304 @@
# Отчет по теме 4
Ефимова Людмила, А-03-23
## 1. Запустила оболочку IDLE создала рабочий протокол
## 2. Стандартные функции.
### 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.
round(123.456,1)
123.5
round(123.456,0)
123.0
type(round(123.456,1)
<class 'float'>
type(round(123.456,0))
<class 'float'>
round(123.456)
123
type(round(123.456))
<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(23)
range(0, 23) # создает последовательность целых чисел от 0 до 22 с шагом 1
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]
type(gg)
<class 'range'>
```
### 2.3. Функция создания общего объекта, элементами которого являются кортежи zip().
```py
qq = ["Ефимова", "Девятова", "Беженарь", "Антонов"]
ff=zip(gg,qq)
ff # итерируемый объект просто так нельзя увидеть
<zip object at 0x000001F7810C4340>
tuple(ff)
((76, 'Ефимова'), (85, 'Девятова'), (94, 'Беженарь'), (103, 'Антонов'))
ff[1] # нельзя обращаться с помощью индекса
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
ff[1]
TypeError: 'zip' object is not subscriptable
```
Длина результирующего объекта равна длине самого короткого объекта из переданных функции.
### 2.4. Функция вычисляющая значения выражения, корректно записанного на языке Python и представленного в виде символьной строки eval()
```py
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=3
dan
-141.0
```
### 2.5. Похожая на eval() функция exec().
Xтение и выполнение объекта-аргумента функции.
Этот объект должен представлять собой строку символов с совокупностью инструкций на языке 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
abs(-100) # Получение модуля числа
100
pow(2, 5) # Возведение чисда в степень
32
max(1, 2, 3, 10) # Получение максимального числа из переданной последовательности
10
min(1, 2, 3, 10) # Получение минимального числа из переданной последовательности
1
sum([1, 2, 3, 10]) # Суммирование элементов переданной последовательности
16
divmod(11, 4) # Получение кортежа с двумя элементами: результатами целочисленного деления и деления с остатком
(2, 3)
len([1, 2, 3, 10])
4
def cube(x):
return x ** 2
map(cube, [1, 2, 3, 10]) # Применение заданной функции ко всем элементам переданной последовательности
<map object at 0x000001F783989F60>
list(map(cube, [1, 2, 3, 10]))
[1, 4, 9, 100]
```
## 3. Функции из стандартного модуля math
```py
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
math.sin(math.pi / 6) # Расчет синуса числа
0.49999999999999994
math.acos(0.5) * 180 / math.pi # Расчет арккосинуса числа
60.00000000000001
math.degrees(math.pi / 6) # Перевод угла в радианах в градусы
29.999999999999996
math.radians(60) # Перевод угла в градусах в радианы
1.0471975511965976
math.exp(2) # Возведение числа Эйлера в определенную степень
7.38905609893065
math.log(8, 2) # Вычисление логарифма с определенным основанием
3.0
math.log10(100) # Вычисление десятичного логарифма
2.0
math.sqrt(64) # Вычисление квадратного корня
8.0
math.ceil(4.25) # Округление в большую сторону
5
math.floor(4.25) # Округление в меньшую сторону
4
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.random() # Равномерно распределенное случайное число
0.3956737606722922
random.uniform(1, 2) # Равномерно распределенное случайное число
1.2506275428676115
random.randint(5, 6) # Случайное целое число
5
random.gauss(5, 0.2) # Нормально распределенное случайное число
4.575306564580744
random.choice(["Apple", "Orange", "Pear"]) # Случайный выбор элемента из совокупности
'Orange'
fruits = ["Apple", "Orange", "Pear"]
random.shuffle(fruits) # Перемешивание элементов списка
fruits
['Orange', 'Apple', 'Pear']
random.sample(fruits, 2) # Получение выборки заданной размерности из совокупности
['Apple', 'Orange']
random.betavariate(1, 2) # Случайное число с бета-распределением
0.19723446300643666
random.gammavariate(1, 2) # Случайное число с гамма-распределением
0.004344283624993138
```
Cписок с 4 случайными значениями подчиняющимися равномерному, нормальному, бета и гамма – распределениям.
```py
[random.uniform(1, 5), random.gauss(2, 1), random.betavariate(1, 2), random.gammavariate(1, 2)]
[1.937226676440678, 1.2213894819097244, 0.9228424699324803, 0.8536430488572739]
```
## 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() # Время в секундах, прошедшее с начала эпохи 1.1.1970
c1
1761258327.4259675
c2=time.time()-c1 # Получение времени со ввода предыдущей команды
c2
19.33849573135376
dat=time.gmtime() # Получение полной информации о текущем времени
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=23, tm_hour=22, tm_min=26, tm_sec=24, tm_wday=3, tm_yday=296, tm_isdst=0)
dat.tm_mon # Получение текущего месяца
10
dat.tm_hour # Получение текущего часа
22
datLocal = time.localtime() # Получение полной информации о текущем "местном" времени
datLocal
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=24, tm_hour=1, tm_min=28, tm_sec=16, tm_wday=4, tm_yday=297, tm_isdst=0)
time.asctime(datLocal) # Преобразование представления времени из кортежа в строку
'Fri Oct 23 01:28:16 2025'
time.ctime(c1) # Преобразование времени в секундах, прошедшего с начала эпохи, в строку
'Fri Oct 23 01:25:27 2025'
time.sleep(10) # Прерывание работы программы на заданное количество секунд
time.mktime(datLocal) # Преобразование времени из кортежа или структуры в число секунд с начала эпохи
1761258496.0
```
## 7. Графические функции.
```py
import pylab
x=list(range(-3,55,4))
t=list(range(15))
pylab.plot(t,x) #Создание графика в оперативной памяти
pylab.title('Первый график')
pylab.xlabel('время')
pylab.ylabel('сигнал')
pylab.show() #Отображение графика на экране
```
![Скриншот графика](Ris1.png)
На одном рисунке можно изображать несколько графиков
```py
X1=[12,6,8,10,7]
X2=[5,7,9,11,13]
pylab.plot(X1)
pylab.plot(X2)
pylab.show()
```
![Скриншот графика](Ris2.png)
Построение круговой диаграммы
```py
region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы
naselen=[65,12,23,17] # Значения для диаграммы
pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
pylab.show() #Отображение диаграммы
```
![Скриншот графика](Ris3.png)
Построение гистограммы
```py
pylab.hist([1, 2, 3, 1, 1, 2, 2, 2, 2, 4, 4], bins = 4)
pylab.show()
```
![Скриншот графика](Ris4.png)
```py
pylab.bar(region, naselen)
pylab.show()
```
![Скриншот графика](Ris5.jpg)
## 8. Статистические функции из модуля statistics.
```py
import statistics
dir(statistics)
['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance']
statistics.mean([1, 2, 3, 4, 5, 6, 7, 8, 9]) # Вычисление среднего
5
statistics.stdev([1, 2, 3, 4, 5, 6, 7, 8, 9]) # Вычисление среднеквадратичного отклонения
2.7386127875258306
statistics.median([1, 2, 3, 4, 5, 6, 7, 8]) # Вычисление медианы
4.5
```
## 9. Завершила работу со средой

@ -0,0 +1,61 @@
# Общее контрольное задание по теме 4
Ефимова Людмила, А-03-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности
инструкций, выполняющих следующие действия:
1. Напишите и исполните единое выражение, реализующее последовательное выполнение
следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата
до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из
двух значений: округленное вниз значение от деления результата на 3 и остатка от этого
деления.
2. Создайте объект класса struct_time с временными параметрами для текущего московского
времени. Создайте строку с текущим часом и минутами.
3. Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из
этого списка с тремя днями недели.
4. Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до
32 с шагом 3.
5. Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и
стандартным отклонением 4 и округлите его до целого значения. Создайте список с N
элементами – случайно выбранными буквами латинского алфавита.
6. Напишите инструкцию для определения временного интервала в минутах, прошедшего с
момента предыдущего (из п.2) определения временных параметров.
```py
import cmath # пункт 1
divmod(round(cmath.phase(0.2+0.8j),2)*20,3)
(8.0, 2.6000000000000014)
import time # пункт 2
Time=time.time()
MosSec= Time + 3*60*60
MosTime=time.gmtime(MosSec)
print("Current time: {}:{}".format(MosTime.tm_hour, MosTime.tm_min))
Current time: 23:1
import random # пункт 3
Days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
random.sample(Days, 3)
['Wednesday', 'Tuesday', 'Monday']
random.choice(range(14, 33, 3)) # пункт 4
32
N = math.floor(random.gauss(15, 4)) # пункт 5
N
19
import string # модуль с латинским алфавитом
letters = random.sample(string.ascii_letters, N)
letters
['p', 'A', 'h', 'X', 'F', 'a', 'C', 'M', 'b', 'L', 'e', 'P', 'G', 'k', 'u', 'o', 'K', 'E', 'B']
timeDiff = round(time.time() - time.mktime(localTime)) # пункт 6
print(timeDiff // 60, "minutes and", timeDiff % 60, "seconds")
40 minutes and 36 seconds
```

@ -0,0 +1,40 @@
# Индивидуальное контрольное задание по теме 4
Ефимова Людмила, А-03-23
## Задание вариант 23
Напишите инструкцию запоминания в переменной Московского регионального времени.
```py
import time
time_now = time.localtime() # полное время
time_now
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=24, tm_hour=12, tm_min=13, tm_sec=23, tm_wday=4, tm_yday=297, tm_isdst=0)
time_now = time.time() # время в секундах
time_now
1761296218.109631
```
Добавьте к этому времени 3 часа.
Отобразите результат в виде: «Число секунд =ХХХХХ».
```py
time_new = time_now+(3*60*60) # 3 часа перевод в секунды
print("Число секунд = ", time_new)
Число секунд = 1761307018.109631
```
Создайте комплексное число, у которого вещественная и мнимая части – случайные, нормально распределенные числа с математическим ожиданием -55 и стандартным отклонением 12.
Извлеките из этого числа квадратный корень.
Отобразите результат в виде: «Результат = ХХХ+ХХj».
```py
import random
import cmath
a = random.normalvariate(-55, 12) # случайные нормально распределенные числа с мат ожиданием -55, и стандартным отклонением 12.
b = random.normalvariate(-55, 12)
z = complex(a, b)
z
(-48.00248180546525-48.574962483174176j)
sqr = cmath.sqrt(z)
print('Результат = ', sqr.real, sqr.imag, 'j')
Результат = 3.185065441113534 -7.625426130364191j
```

Двоичные данные
TEMA5/Ris1.png

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

После

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

Двоичные данные
TEMA5/Ris2.png

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

После

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

@ -0,0 +1,290 @@
# Отчет по теме 5
Ефимова Людмила, А-03-23
## 1. Открыла интерактивуню оболочку IDLE и создала файл отчета.
## 2. Ветвление по условию - управляющая конструкция if else
Задали некоторые числовые значения объектам porog, rashod1, rashod2. Выполнили операцию
для определения значения dohod:
```py
porog = 3
rashod1 = 5
rashod2 = 4
if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
dohod
12
if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
dohod
5
if porog==3:
dohod=1
elif porog==4:
dohod=2
elif porog==5:
dohod=3
else:
dohod=0
dohod
1
```
Условные инструкции могут записываться также в одну строку в операторе присваивания по
следующей схеме:
<Объект>=<значение 1> if <условие> else <значение 2>
или
if <условие>: <инструкция1>[;<инструкция2>….]
```py
dohod=2 if porog>=4 else 0
dohod
0
if porog>=5 : rashod1=6; rashod2=0
rashod1, rashod2
(5, 4)
```
## 3. Цикл по перечислению - управляющая констркуция for
### 3.1. Простой цикл
```py
temperatura=5
for i in range(3,18,3): # цикл от 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]
```
### 3.3. Пример создания списка с 10 целыми случайными числами
```py
for i in range(10):
sps5.append(rn.randint(1,100))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
sps5
[27, 84, 92, 90, 10, 39, 46, 63, 88]
ss
539
# Вывод ss происходит только в случае если цикл for завершается самостоятельно без break т.е. ss < 500
for i in range(3):
sps5.append(rn.randint(1,100))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
186
```
### 3.4. Пример с символьной строкой
```py
# цикл идет по каждому символу и сохраняет их в ss
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)]
pylab.title('График синусоидального сигнала')
pylab.plot(sps2)
pylab.show()
```
![Скриншот графика](Ris1.png)
## 4. Цикл "пока истинно условие" - управляющая конструкция While
### 4.1 Цикл со счетчиком
```py
rashod=300
while rashod: # Цикл закончится когда rashod = 0
print("Расход=",rashod)
rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
### 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
```
Представим в виде графика
```py
pylab.title('Сигнал на выходе инерционного звена')
pylab.plot(sps2, color='violet')
pylab.show()
```
![Скриншот графика](Ris2.png)
### 4.3. Определение является ли число простым
```py
chislo=267 #Проверяемое число
kandidat =chislo // 2 # Для значений chislo > 1
while kandidat > 1:
if chislo%kandidat == 0: # Остаток от деления
print(chislo, ' имеет множитель ', kandidat)
break # else выполняться не будет
kandidat -= 1
else: # При завершении цикла без break
print(chislo, ' является простым!')
267 имеет множитель 89
```
Выявим все простые числа от 250 до 300
```py
for chislo in range(250,301):
kandidat = chislo // 2
while kandidat > 1:
if chislo%kandidat == 0: # Остаток от деления
print(chislo, ' имеет множитель ', kandidat)
break # else выполняться не будет
kandidat -= 1
else: # При завершении цикла без break
print(chislo, ' является простым!')
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
```
## 5. Завершила работу со средой и сохранила файл отчета.

@ -0,0 +1,94 @@
# Общее контрольное задание по теме 5
Ефимова Людмила, А-03-23
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении
следующих задач:
1. Для заданной символьной строки с англоязычным текстом определите порядковый номер каждой буквы в английском алфавите.
```py
alphabet = "abcdefghijklmnopqrstuvwxyz"
for letter in alphabet:
if letter.isalpha():
position = ord(letter) - 96
print(letter, ' Номер буквы: ', position)
a Номер буквы: 1
b Номер буквы: 2
c Номер буквы: 3
d Номер буквы: 4
e Номер буквы: 5
f Номер буквы: 6
g Номер буквы: 7
h Номер буквы: 8
i Номер буквы: 9
j Номер буквы: 10
k Номер буквы: 11
l Номер буквы: 12
m Номер буквы: 13
n Номер буквы: 14
o Номер буквы: 15
p Номер буквы: 16
q Номер буквы: 17
r Номер буквы: 18
s Номер буквы: 19
t Номер буквы: 20
u Номер буквы: 21
v Номер буквы: 22
w Номер буквы: 23
x Номер буквы: 24
y Номер буквы: 25
z Номер буквы: 26
```
2. Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли
в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о
нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с
отсутствующим словом).
```py
stroka = '''Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли
в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о
нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с
отсутствующим словом).'''
if 'привет' in stroka:
print('такое слово есть')
else:
print('такого слова не нашлось(')
такого слова не нашлось(
if 'список' in stroka:
print('такое слово есть')
else:
print('такого слова не нашлось(')
такое слово есть
```
3. Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней
сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных
списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции,
позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям
```py
familii = ['Антонов', 'Девятова', 'Ефимова']
marks_summer = [5,5,4]
familii2 = ['Ефимова', 'Антонов', 'Девятова']
marks_winter = [4,5,5]
name = input('Введите фамилию: ')
Введите фамилию: Антонов
for name in familii:
result = (marks_summer[familii.index(name)] + marks_winter[familii2.index(name)])/2
print('Средний балл: ', result)
break
Средний балл: 5.0
```

@ -0,0 +1,33 @@
# Индивидуальное контрольное задание вариант 25
Ефимова Людмила, А-03-23
## Задание
Создайте список с 50 элементами – целыми случайными числами из диапазона значений от -1 до +1.
```py
import random
for i in range(50):
sps.append(random.randint(-1, 1))
sps
[1, 0, 0, 1, -1, -1, 1, 1, 0, -1, -1, -1, 0, 1, 1, -1, -1, -1, 0, 0, -1, 1, 0, -1, 1, -1, 1, 0, 0, -1, 0, 1, 0, 0, 1, -1, 1, 0, 0, -1, 0, -1, 0, -1, 1, 1, -1, -1, 1, 1]
```
Определите по этому списку, сколько раз последующее число было меньше предыдущего, сколько – больше и сколько – равным.
Отобразите результат в виде строки: «Больше=ХХ, меньше=ХХ, равно=ХХ».
```py
big = 0 # счетчики
small =0
equal = 0
for i in range(len(sps)-1):
current = sps[i]
next_num = sps[i+1]
if next_num < current:
small += 1
elif next_num > current:
big += 1
else: equal += 1
print('Больше =', big, ' Меньше =', small, ' Равно = ', equal)
Больше = 16 Меньше = 18 Равно = 33
```
Загрузка…
Отмена
Сохранить