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

...

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

Автор SHA1 Сообщение Дата
unknown 62201d4115 first commit report creating
13 часов назад
unknown 8e87c89a8c fourth commit report and task adding
1 день назад
unknown 72ba151843 third commit report changing
1 день назад
unknown f790e7f8d0 second commit report adding 1
1 день назад
unknown 1104ac32a3 first commit report creating
1 день назад
unknown 118e2ba815 second commit report and task adding
1 день назад
unknown 6db2eed338 first commit report creating
2 дней назад
unknown 8dbd035be6 third commit task adding
2 дней назад
unknown ccf7c2c874 second commit report adding
2 дней назад
unknown abe11e9434 first commit report creating
3 дней назад
unknown fb860d6205 second commit report and task adding
3 дней назад
unknown b776515305 first commit report creating
3 дней назад
Пользователь № 16 аудитории К-522 cfe7ffb000 task
4 дней назад
Пользователь № 16 аудитории К-522 047e22e2db zadanie
4 дней назад
Пользователь № 16 аудитории К-522 8de06b1b7a last commit 3
4 дней назад
Пользователь № 16 аудитории К-522 bf03aae430 last commit 2
4 дней назад
Пользователь № 16 аудитории К-522 66abe82426 images
4 дней назад
Пользователь № 16 аудитории К-522 0fb7dbd5a5 last commit
4 дней назад
Пользователь № 16 аудитории К-522 9f93bed94e first commit
5 дней назад

Двоичные данные
TEMA1/pic0.png

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

После

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

Двоичные данные
TEMA1/pic1.png

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

После

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

Двоичные данные
TEMA1/pic10.png

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

После

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

Двоичные данные
TEMA1/pic2.png

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

После

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

Двоичные данные
TEMA1/pic3.png

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

После

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

Двоичные данные
TEMA1/pic4.png

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

После

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

Двоичные данные
TEMA1/pic5.png

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

После

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

Двоичные данные
TEMA1/pic6.png

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

После

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

Двоичные данные
TEMA1/pic7.png

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

После

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

Двоичные данные
TEMA1/pic8.png

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

После

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

Двоичные данные
TEMA1/pic9.png

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

После

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

@ -0,0 +1,6 @@
#Программа по теме 1 Добровольска Елизавета
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\u522-16\\Desktop\\python-labs\\TEMA1\\')

@ -0,0 +1,178 @@
# Отчет по теме 1
Добровольска Елизавета, А-02-23
## 1 Была создана папка ТЕМА1 в GITHUB
## 2 Был запущен интерпритатор на выполнение
![](pic0.png)
## 3 Была применена команда печати
```py
>>> print('Hello')
Hello
```
## 4 Была применена команда ввода текста пользователем
```py
>>> h=input('Your name=')
Your name=Jelizaveta
```
## 5 Интерпретатор был закрыт
```py
>>> exit()
```
## 6 Была запущена интерактивная графическая оболочка IDLE
![](pic1.png)
## 7 Была изучена функциональность окна IDLE
## 8 Был задан путь к рабочему каталогу
```py
>>> import os
>>> os.chdir('C:\\Users\\u522-16\\Desktop\\python-labs\\TEMA1\\')
```
## 9 Был изменен дизайн окна
![](pic2.png)
## 10 Была записана программа в файл и запущена различными способами
## 10.1 Команды были записаны в файл с расширением .py и программа запущена на выполнение с помощью функции run в интерфейсе IDLE
![](pic3.png)
## 10.2 Тот же файл был запущен с помощью команды import:
```py
>>> import pr0.py
Hello
Your name=Liza
```
## 10.3 Тот же файл с программой был запущен с помощью клавиши F5:
```py
>>>
==================== RESTART: C:\Users\u522-16\Desktop\python-labs\TEMA1\pr0.py ====================
Hello
Your name=Jelizaveta
```
## 11 Была запущена программа prb1.py с помощью команды import
```py
>>>import prb1.py
Как Вас зовут? Liza
Привет, Liza
```
## 12 Была произведена попытка открытия в среде IDLE файла с расширением .рус и изучен результат
## 12.1 Попытка открытия файла с расширением .рус
В результате попытки открыть в среде IDLE файл с расширением .рус, программа написала предупреждение о том, что невозможно запустить файл с подобной кодировкой.
Это произошло потому, что в данной среде возможно открыть только файлы с расширением .py
![](pic4.png)
Файл с расширением .рус содержит байт-код - низкоуровненое представление программы, которое нужно для того, чтоб написанный код смогла прочитать виртуальная машина.
При запуске программы, автоматически произошла компиляция (процесс преобразования кода с одного языка программирования на другой), котоорая нужна для того, чтобы компьютер мог исполнить код.
## 12.2 Был открыт текст данного файла:
![](pic5.png)
## 14 Был изучен отдел помощи в IDLE
## 14.1 Был изучен раздел Help
Предлагается информация о самом IDLE (версия, лицензия и тд), документация по среде, где можно найти описание имеющихся функций и интерфейса и работы с программой,
документация по Питону, где можно узнать о программирование на самом языке, а также имеется раздел с разными примерами графических программ.
## 14.2 Была изучена команда help:
```py
>>>help(print)
Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.
```
## 14.3 Были введены две команды в одной строке:
```py
>>>help(print); help(input)
Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.
Help on built-in function input in module builtins:
input(prompt='', /)
Read a string from standard input. The trailing newline is stripped.
The prompt string, if given, is printed to standard output without a
trailing newline before reading input.
If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
```
## 14.4 В документации по Питону была найдена информация по функции print():
![](pic6.png)
## 15 Были изучены графические примеры среды
## 15.1 Был изучен раздел окон, а именно переключение между ними:
![](pic7.png)
## 15.2 Был просмотрен график из программы tdemo_chaos:
![](pic8.png)
## 15.3 Был просмотрен текст этой же программы:
![](pic9.png)
## 15.4 Был изучен раздел помощи по графическим программам и пример с часами:
![](pic10.png)
Подобные примеры можно использовать как шаблоны для необходимых графических программ, а так же для поиска необходимых функций, с помощью которых можно создавать графики.
## 16 Была завершена работа со средой

@ -0,0 +1,12 @@
# Общее контрольное задание по теме 1
Добровольска Елизавета, А-02-23
## Вопрос
Что означает название интерактивной оболочки IDLE?
## Ответ
Название IDLE расшифровывается как Integrated Development and Learning environment, что переводится как интегрированная среда развития и обучения.
Оно говорит о том, что среда предназначена для обучения программированию и простого написания кода.

Двоичные данные
TEMA2/pic0.png

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

После

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

@ -0,0 +1,426 @@
# Отчет по теме 2
Добровольска Елизавета, А-02-23
## 1 Создание протокола в IDLE
Был установлен рабочий каталог и создан протокол в среде IDLE
![](pic0.png)
## 2 Создание обьектов и работа с ними
Были созданы обьекты, просмотренно значение созданных обьектов, просмотренны существувющие обьекты, удалены обьекты
```py
>>>f1=16; f2=3
>>>f1,f2
(16, 3)
>>>f1;f2
16
3
>>>dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
>>>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']
>>>type(f2)
<class 'int'>
>>>del f1,f2
>>>dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
```
## 3 Создание обьектов разнличных типов
```py
>>>gg1=1.6 #значение в виде вещественного числа
>>>gg1
1.6
>>>hh1='Строка' #значение в виде символьной строки
>>>hh1
'Строка'
>>>73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
SyntaxError: invalid decimal literal
>>>and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
SyntaxError: invalid syntax
```
## 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']
>>>kk = keyword.kwlist
>>>kk
['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']
```
## 5 Изучение встроенных идентификаторов
Был выведен список встроенных идентификаторов и изучен некоторый список функций с помощью функции help:
abs - выдает значение по модулю;
len - выдает длину обьекта;
max - выдает максимальное число из списка введенных в аргумент;
min - выдает минимальное число из списка введенных в аргумент;
pow - при двух аргументах: возводит первый в степень второго, при наличие третьего аргумента делит получившийся результат на третий аргумент и показывает остаток;
round - округляет число до целого (при отсутствии второго аргумента), а при наличие второго аргумента округляет по стольких цифр после запятой, сколько указано во втором аргументе;
sorted - сортирует числа или буквы слова по возрастанию или убыванию;
sum - суммирует числа;
zip - создает итератор, который объединяет элементы из нескольких перебираемых объектов по соответствию.
```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']
>>>abs(-5)
5
>>>len("hi")
2
>>>max(3, 4)
4
>>>min(3, 4)
3
>>>pow(3, 2)
9
>>>pow(3, 2, 3)
0
>>>round(5.675, 2)
5.67
>>>sorted([3, 4, 1])
[1, 3, 4]
>>>sorted("cdab")
['a', 'b', 'c', 'd']
>>>sum([2, 3])
5
>>>list(zip([1, 2, 3], ["a", "b", "c"]))
[(1, 'a'), (2, 'b'), (3, 'c')]
```
## 6 Изучение различи восприятия программой маленьких и больших букв
Были созданы две переменные с именами, в которых отличается только размер одной буквы. Был сделан вывод, что для программы это две разные переменные.
```py
>>>Gg1=45
>>>Gg1
45
>>>gg1
1.6
```
## 7 Изучение базовых типов обьектов
Были изучены различные основные типа обьектов и произведены некоторые операции с ними.
## 7.1 Изучение логического типа обьекта (bool)
```py
>>>bb1=True; bb2=False
>>>bb1;bb2
True
False
>>>type(bb1) #функция, показывающая тип (класс) объекта
<class 'bool'>
```
## 7.2 Изучение простых типов обьектов (int, float, complex)
Были созданны переменные классов int, float, complex. Было выяснено, что двоичное число сохранено в обьекте класса int, как и например шестнадцатеричное число. А вот при экспоненциальной форме записи вещественного числа оно созраняется в обьекте класса float.
```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) #Создается комплексное число
>>>type(cc1)
<class 'complex'>
>>>type(shest1)
<class 'int'>
>>>type(ff1)
<class 'float'>
```
## 7.3 Изучение типа обьекта - строка символов
Были созданы обьекты типа строка, также использованы экранированные последовательности для переноса текста на разные строки. Было произведено обращение к элементам строки. Было произведено переопределение текста обьекта.
```py
>>>ss1='Это - строка символов'
>>>ss1
'Это - строка символов'
>>>ss1="Это - строка символов"
>>>ss1
'Это - строка символов'
>>>ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
>>>print(ss1a)
Это - " строка символов ",
выводимая на двух строках
>>>ss1b= 'Меня зовут: \n Добровольска Е.'
>>>print(ss1b)
Меня зовут:
Добровольска Е.
>>>mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
>>>print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
>>>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]='=' # Будет диагностика!
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
>>>ss1=ss1[:4]+'='+ss1[5:]
>>>ss1
'Это = строка символов'
>>>ss1b[14:19]
'Добро'
>>>ss1b[14:19:2]
'Дбо'
>>>ss1b[19:14:-2]
'вро'
```
Также были самостоятельно созданы обьекты разных типов и просмотренн их класс и значение:
```py
>>>gh = 3.7865
>>>type(gh)
<class 'float'>
>>>jk = 3
>>>type(jk)
<class 'int'>
>>>sl = "aaaa"
>>>type(sl)
<class 'str'>
>>>ss = 5+2j
>>>type(ss)
<class 'complex'>
>>>gh
3.7865
>>>jk
3
>>>sl
'aaaa'
>>>ss
(5+2j)
```
## 8 Изучение сложных типов обьектов
## 8.1 Изучение типа обьекта - список
Был создан список, произведено обращение к элементам списка, выведена длина списка, просмотрены и применены методы обьекта, а также произведено добавление элемента к списку и удаление элемента из списка.
```py
>>>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]
>>>spis1[-1]
(5-9j)
>>>stup[-8::2]
[0, 1, 1, 1] #В данный список вошло 4 элемента, с 8 с конца до последнего с шагом 2. То есть с индексами 1,3,5,7
>>>spis1[1]='Список'
>>>spis1
[111, 'Список', (5-9j)]
>>>len(spis1)
3
>>>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']
>>>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') # В конец списка добавлен элемент «New item»
>>>spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
>>>spis1+[ss1b]
>>>[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n Добровольска Е.']
>>>spis1.pop(1)
'Список'
>>>spis1
[111, (5-9j), 'New item']
```
Также были изучены и применены самомтоятельно некоторые методы:
insert - вставляет элемент с второго аргумента на позицию c первого аргумента;
remove - удаляет первый элемент из списка, который соответствует аргументу (его значению);
extend - добaвляет в конец списка все элемента из обьекта в аргументе;
clear - очищает список;
sort - сортирует элементы по порядку;
reverse - переворачивает порядок элементов;
copy - создает копию списка;
count - возвращает число, сколько раз элемент из аргумента встиречается в списке;
index - возвращает индекс первого элемента соответствующему аргументу.
```py
>>>lis = [1,2,3,4,5,6,8,9]
>>>lis
[1, 2, 3, 4, 5, 6, 8, 9]
>>>lis.insert(6, 7)
>>>lis
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>lis.remove(5)
>>>lis
[1, 2, 3, 4, 6, 7, 8, 9]
>>>lis.extend(sus)
>>>lis
[1, 2, 3, 4, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>lis.sort()
>>>lis
[1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9]
>>>lis.reverse()
>>>lis
[9, 9, 8, 8, 7, 7, 6, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1]
>>>lis.copy()
[9, 9, 8, 8, 7, 7, 6, 6, 5, 4, 4, 3, 3, 2, 2, 1, 1]
>>>lis.count(8)
2
>>>lis.index(7)
4
>>>lis.clear()
>>>lis
[]
```
Был создан вложенный список, а также самостоятельно был создан список из элементов разных классов: число, строка, логическое значение, список.
```py
>>>spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
>>>spis2[0][1] #обращение к элементу списка spis1
(5-9j)
>>>spis2[0][1]=78 #Убедитесь, что значение элемента заменено на 78
>>>spis2
[[111, 78, 'New item'], [4, 5, 6, 7]]
>>>spis1
[111, 78, 'New item'] #spis1 изменился, поскольку присваивание списка переменной (или включение списка в другой список) создает ссылку, а не копию. Списки являются изменяемыми, поэтому изменение списка через одну ссылку влияет и на другие ссылки, указывающие на этот же список.
>>>spisochek=[jk, ss1, bb1, lis]
>>>spisochek
[3, 'Это = строка символов', True, []]
'''
## 8.2 Изучение типа обьекта - обьект-кортеж
Был создан обьект кортеж, к нему были добывлены элементы, кортеж был переопределен, были применены некоторые методы (index, count), была произведена попытка изменить кортеж, а также самостоятельно был создан кортеж с элементами разных типов: число, строка, список, кортеж.
```py
>>>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
4
>>>kort1.count(222) #Будет получено значение 1
1
>>>kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
Traceback (most recent call last):
File "<pyshell#159>", line 1, in <module>
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
>>>kort3=(4, "ppp", lis, kort1)
>>>kort3
(4, 'ppp', [], (222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Добровольска Е.'))
```
## 8.3 Изучение типа обьекта - Объект-словарь
Был создан словарь, произведено обращение к его элементу, добавлен элемент, словарь был отсортирован по ключу и по значению, были созданы словари с помощью dict и zip. Также самостоятельно был создан словарь из списка и кортежа с помощью dict и zip.
```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]))
>>>kort4=(1,2,3,4,5,6,7)
>>>lis1=["a", "b", "c", "d", "e"]
>>>dic4
{1: ['A', 'B', 'C'], 2: [4, 5], 'Q': 'Prim', 'Stroka': 'Меня зовут: \n Добровольска Е.'}
>>>dic5
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n Добровольска Е.'}
>>>dic7=dict(zip(kort4, lis1))
>>>dic7
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
>>>len(dic7) #Длина словаря равна 5, поскольку zip объединяет элементы из перебираемых объектов пока не закончится самый короткий из них.
5
>>>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
{'микропроцессор', 'реле', 'двигатель', 'датчик'}
>>>mno={"loo", "uu", 3, kort1}
>>>mno
{3, 'loo', 'uu', (222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Добровольска Е.')}
>>>mno.add(6)
>>>mno
{'loo', 3, 6, 'uu', (222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Добровольска Е.')}
>>>"kkk" in mno
False
```
## 9 Завершение работы в IDLE
Был закончен сеанс работы в IDLE

@ -0,0 +1,42 @@
# Общее контрольное задание по теме 2
Добровольска Елизавета, А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
• Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
• Создать переменную со значением, совпадающим с первой буквой из familia.
• Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
• Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
• Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
• Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
• Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
• Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```py
>>>familia="Dobrovolska"
>>>dd=familia[0]
>>>dd
'D'
>>>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")
>>>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=("Liza", "Vera", "Nastya", "Lena")
>>>type(kort_nam)
<class 'tuple'>
>>>kort_nam=kort_nam+("Dana", "Katya")
>>>kort_nam
('Liza', 'Vera', 'Nastya', 'Lena', 'Dana', 'Katya')
>>>kort_nam.count("Dima")
0
>>>dict_bas={"строка":[familia, dd], "список":[sp_kw], "кортеж": [kort_nam]}
>>>dict_bas
{'строка': ['Dobrovolska', 'D'], 'список': [['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']], 'кортеж': [('Liza', 'Vera', 'Nastya', 'Lena', 'Dana', 'Katya')]}

Двоичные данные
TEMA3/pic0.png

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

После

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

@ -0,0 +1,721 @@
# Отчет по теме 3
Добровольска Елизавета, А-02-23
## 1 Запуск интерактивной оболочки IDLE
Была запущена интерактивная оболочка IDLE и создан протокол
![](pic0.png)
## 2 Преобразование базовых типов обьектов в другие типы
Было изучено, как преобразовывать обьекты одного типа, в обьекты другого типа.
## 2.1 Преобразование обьектов в логический тип данных
Было изучено, как преобразовывать обьекты типа строка и число, в обьекты логического типа.
```py
>>>logiz1=bool(56)
>>>logiz2=bool(0)
>>>logiz3=bool("Beta")
>>>logiz4=bool("")
>>>logiz1
True
```
## 2.2 Преобразование обьектов в числовой тип данных
Было изучено, как преобразовывать обьекты типа строка и число, в обьекты целого и вещественного типа int и float.
```py
>>>tt1=int(198.6) #Отбрасывается дробная часть
>>>tt1
198
>>>tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная
>>>tt2
-76
>>>tt3=int("B",16) #В шестнадцатиричной системе буква "В" соответствует числу 11
>>>tt3
11
>>>tt4=int("71",8) #71 преобразуется в число в восьмеричной системе
>>>tt4
57
>>>tt5=int("98.76") #Число представлено в виде строки, но само по себе оно относится к вещественным числам (типа float), поэтому сразу невозможно его преобразовать в целое. Для такого преобразования надо сначала переопределить его как float, а уже потом как int.
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
>>>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 Преобразование целочисленных обьектов в строки с двоичным, восьмеричным и шестнадцатеричным представлением и обратное представление
Были преобразованы целочисленных обьекты в строки с двоичным, восьмеричным и шестнадцатеричным представлением и обратно представлены в целочисленном виде.
```py
>>>hh=123
>>>dv1=bin(hh) #Преобразование в строку с двоичным представлением
>>>vos1=oct(hh) # Преобразование в строку с восьмеричным представлением
>>>shs1=hex(hh) # Преобразование в строку с шестнадцатеричным представлением
>>>dv1
'0b1111011'
>>>vos1
'0o173'
>>>shs1
'0x7b'
>>>int(dv1,2)
123
>>>int(vos1, 8)
123
>>>int(shs1, 16)
123
```
## 3 Преобразование сложных типов обьектов в другие типы
## 3.1 Преобразование элементов в строку символов
В строку были преобразованы число, логическая переменная, список, кортеж и словарь.
```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 Преобразование элементов в список
Были преобразованы в список строка символов, кортеж и словарь тремя способами (включая только ключи, только значения и ключи и значения вместе).
```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']
>>>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)]
```
## 3.3 Преобразование элементов в кортеж
В кортеж были преобразованы строка, список и словарь.
```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 Удаление обьектов
Были удалены два обьекта и проверено их наличие. Так же самостоятельно ыла создана спрака, которая была потом преобразована в список, затем список – в кортеж и, кортеж – в строку.
```py
>>>del strk5, kort8
>>>strk5
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
strk5
NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
>>>kort8
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
kort8
NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
>>>f_str="Добровольска Е"
>>>f_spis=list(f_str)
>>>f_kort=tuple(f_spis)
>>>f_sstr=str(f_kort)
>>>f_spis
['Д', 'о', 'б', 'р', 'о', 'в', 'о', 'л', 'ь', 'с', 'к', 'а', ' ', 'Е']
>>>f_kort
('Д', 'о', 'б', 'р', 'о', 'в', 'о', 'л', 'ь', 'с', 'к', 'а', ' ', 'Е')
>>>f_sstr
"('Д', 'о', 'б', 'р', 'о', 'в', 'о', 'л', 'ь', 'с', 'к', 'а', ' ', 'Е')"
```
## 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!
>>>a
3.9555555555555557
>>>type(a)
<class 'float'>
```
## 4.4 Изучение деления с округлением вниз
Был применен операнд деления с округлением вниз, деление испробовано на целых и вещественных числах и выведен тип результативной переменной.
```py
>>>b=178//45 #Деление двух целых чисел
>>>b
3
>>>type(b)
<class 'int'>
>>>c=-24.6//12.1 #Деление двух вещественных чисел
>>>c
-3.0
>>>type(c)
<class 'float'>
>>>ddd=56.88//45
>>>ddd
1.0
>>>type(ddd)
<class 'float'>
>>>eee=45//56.88
>>>eee
0.0
>>>type(eee)
<class 'float'>
```
## 4.5 Изучение получения отсатка от деления
Был применен операнд остатка от деления, операция применена по отношению к целым и вещественным числам.
```py
>>>148%33 #Остаток от деления двух целых чисел
16
>>>12.6%3.8 #Остаток от деления двух вещественных чисел
1.2000000000000002
>>>148%3.9
3.7000000000000033
>>>3.9%2
1.9
```
## 4.6 Изучение возведения в степень
Была применена операция возведения в степень с вещественными и целыми числами.
```py
>>>14**3 #Целое число возводится в целую степень
2744
>>>e=2.7**3.6 #Вещественное число возводится в вещественную степень
>>>e
35.719843790663525
>>>2.7**3
19.683000000000003
>>>3**2.7
19.419023519771343
```
Также самостоятельно были произведены операции над комплексными числами. Выяснено, что выполнимы все вышеприведенные операции, кроме деления с округлением вниз и определения остатка.
```py
>>>kom1=5+2j
>>>kom2=3+7j
>>>kom1+kom2
(8+9j)
>>>kom1-kom2
(2-5j)
>>>kom1*kom2
(1+41j)
>>>kom1/kom2
(0.5-0.5000000000000001j)
>>>kom1//kom2
Traceback (most recent call last):
File "<pyshell#110>", line 1, in <module>
kom1//kom2
TypeError: unsupported operand type(s) for //: 'complex' and 'complex'
>>>kom1//3
Traceback (most recent call last):
File "<pyshell#111>", line 1, in <module>
kom1//3
TypeError: unsupported operand type(s) for //: 'complex' and 'int'
>>>kom1%kom2
Traceback (most recent call last):
File "<pyshell#112>", line 1, in <module>
kom1%kom2
TypeError: unsupported operand type(s) for %: 'complex' and 'complex'
>>>kom1%3
Traceback (most recent call last):
File "<pyshell#113>", line 1, in <module>
kom1%3
TypeError: unsupported operand type(s) for %: 'complex' and 'int'
>>>kom1**4
(41+840j)
>>>kom1**kom2
(10.184748623043754+3.841522923031664j)
```
## 5 Изучение операций с двоичными представлениями целых чисел
Были произведены различные операции с двоичным представлением целых чисел.
## 5.1 Изучение двоичной инверсии
Была применена двоичная инверсия.
```py
>>>dv1=9
>>>dv2=~dv1
>>>dv2
-10
```
## 5.2 Изучение двоичного И
Была применена операция двоичного И.
```py
7&9 # 111 и 1001 = 0001
1
7&8 # 111 и 1000 = 0000
0
```
## 5.3 Изучение двоичного ИЛИ
Была применена операция двоичного ИЛИ.
```py
>>>7|9 # 111 или 1001 = 1111
15
>>>7|8 # 111 или 1000 = 1111
15
>>>14|5 # 1110 или 0101 = 1111
15
```
## 5.4 Изучение двоичного исключающего ИЛИ
Была применена операция двоичного исключающего ИЛИ.
```py
>>>14^5 # 1110 исключающее или 0101 = 1011
11
```
Число 11 получилось при переводе числа 1011 из двоичной системы в десятичную. Это можно сделать с помощью выражения: 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 8 + 0 + 2 + 1 = 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
```
Самостоятельно были созданы два двоичных числа с 7-ю знаками и произведены операции над ними.
```py
>>>bin1 = int("0101010", 2)
>>>bin2 = int("1100101", 2)
>>>bin3 = ~bin1
>>>bin3
-43
>>>bin1&bin2
32
>>>bin1|bin2
111
>>>bin1^bin2
79
>>>bin1>>3
5
>>>bin1<<6
2688
```
## 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
>>>'ля-'*5 #Повторение строки 5 раз
'ля-ля-ля-ля-ля-'
>>>['ку','-']*3 #Повторение списка 3 раза
['ку', '-', 'ку', '-', 'ку', '-']
>>>('кис','-')*4 #Повторение кортежа 4 раза
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
>>>signal1=[0]*3+[1]*99
>>>signal2=(0,)*3+(1,)*5+(0,)*7
>>>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, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```
## 6.3 Изучение проверки наличия элементов в обьекте
Было проверено наличие определенных элементов в строке, списке и кортеже.
```py
>>>stroka='Система автоматического управления'
>>>'автомат' in stroka #Наличие подстроки в строке
True
>>>'ку' in ['ку','-']*3 #Наличие контекста в списке
True
>>>'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже
False
```
## 6.4 Изучение подстановки элементов в обьект
Была произведена подстановка чисел и строки в обьект.
```py
>>>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-=3 # Значение уменьшается на 3
>>>zz
-10
```
## 7.3 Изучение умножения и деления переменной
Переменная была умножена, а потом поделена на определенное значение. Также самостоятельно был применон этот операнд для строки, в последствии чего символы в строке продублировались столько раз, какое было умножаемое число.
```py
>>>zz/=2
>>>zz
-5.0
>>>zz*=5
>>>zz
-25.0
>>>xxx="zz"
>>>xxx*=5
>>>xxx
'zzzzzzzzzz'
```
## 7.4 Изучение деления с округлением вниз, получение остатка деления и возведение в степень
На переменной были самостоятельно испробованы операции деления с округлением вниз, получение остатка деления и возведение в степень.
```py
>>>zz//=3
>>>zz
-9.0
>>>zz%=2
>>>zz
1.0
>>>zz**=3
>>>zz
1.0
```
## 7.5 Изучение множественного присваивания
Разным переменным было присвоено одно значение. Также были присвоены значения переменным в одну строку с использованием кортежа,
```py
>>>w=v=10 # Переменным присваивается одно и то же значение
>>>w
10
>>>v
10
>>>n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа, строки, списка и словаря.
>>>n1;n2;n3
11
-3
'all'
>>>n1,n2,n3="11", "-3", "all"
>>>n1;n2;n3
'11'
'-3'
'all'
>>>n1,n2,n3=[11,-3,'all']
>>>n1;n2;n3
11
-3
'all'
>>>n1,n2,n3={11: 3,-3:7,'all':8}
>>>n1;n2;n3
11
-3
'all'
```
## 8 Изучение логических операций
Были изучены и применены некоторые логические операции, а также некоторые действия, с помощью логических операций.
## 8.1 Изучение операций сравнения
К двум переменным были применены различные операции сравнения.
```py
>>>w==v
True
>>>w!=v
False
>>>w>v
False
>>>w<v
False
>>>w<=v
True
>>>w>=v
True
```
## 8.2 Изучение проверки наличия элемента в обьекте с помощью логических операций
Были созданы множество и словарь, и проверено имеются ли в них определенные элементы.
```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 Изучение создания выражений с соединительными словами И, ИЛИ, НЕ
Были построены выражения с соединитиельными словами И, ИЛИ, НЕ.
```py
>>>a=17
>>>b=-6
>>>(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
>>>(5>6) and ('kazan' in dic1) and not ('lozhka' in mnoz1)
False
>>>(5>6) and (7>5) or ("Saratov" in dic1)
True
```
## 8.4 Изучение проверки ссылок переменных на наличие одного и того же обьекта
Было проверено, являются ли созданные обьекты одними и теми же обьектами в памяти.
```py
>>>w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти
>>>w is v
True
>>>w1=['A','B']
>>>v1=['A','B']
>>>w1 is v1 #В данном случае эти переменные не записаны в один адрес памяти, питон создает для списков два разных обьекта, так как список это изменяемый тип и так как значение для переменных присваивалось по-отдельности. Так питон гарантирует, что изменение одного списка не повлияет на другой.
False
```
## 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('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1
5
>>>stroka.count("с") #Подсчет числа вхождений строки “с” в stroka
4
>>>stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
>>>spis22=stroka.split(' ') #Возвращает список подстрок, между которыми в строке стоит заданный разделитель
>>>spis22
['Микропроцессорная', 'система', 'управления']
>>>stroka.upper() #Возвращает строку со всеми заглавными буквами
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
>>>stroka3=" ".join(spis22) #Возвращает строку, собранную из элементов списка
>>>stroka3
'Микропроцессорная система управления'
>>>stroka3.partition("с") #Возвращает кортеж с результатами поиска «с» слева
('Микропроце', 'с', 'сорная система управления')
>>>stroka3.rpartition("с") #Возвращает кортеж с результатами поиска «с» справа
('Микропроцессорная си', 'с', 'тема управления')
>>>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=[4, "a", 5, 7, 9]
>>>dir(spsk)
['__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']
>>>spsk.pop(2)
5
>>>spsk
[4, 'a', 7, 9]
>>>spsk.append('c') #К списку прибавляется строка "с"
>>>spsk
[4, 'a', 7, 9, 'c']
>>>spsk.insert(2,'a') #На 2 место в списке вставляется строка "а"
>>>spsk
[4, 'a', 'a', 7, 9, 'c']
>>>spsk.count('a') #Считается количество "а" в списке
2
```
## 9.3 Изучение методов применимых к кортежам
Были применены разные методы для работы с кортажами и применен один из них.
```py
>>>kor=(2, "k")
>>>dir(kor)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
>>>kor.index(2)
0
```
## 9.4 Изучение методов применимых к словарям
Были применены разные методы для работы со словарями и применен один из них.
```py
>>>dirr={"A":3, "B":4}
>>>dir(dirr)
['__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']
>>>dirr.keys()
>>>dict_keys(['A', 'B'])
```
## 10 Завершение работы в IDLE
Был завершен сеанс в среде IDLE.

@ -0,0 +1,67 @@
# Общее контрольное задание по теме 3
Добровольска Елизавета, А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
• Преобразовать восьмеричное значение 45 в целое число.
• Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка?
• Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4.
• Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.
• Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.
• Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов.
• Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список.
## Решение
```py
>>>a = int("45", 8)
>>>a
37
>>>D={"усиление":23, "запаздывание":12, "постоянная времени":78}
>>>spis1=list(D)
>>>spis1
['усиление', 'запаздывание', 'постоянная времени']
>>>spis2=list(D.values())
>>>spis2
[23, 12, 78]
>>>kor=tuple(spis1)+tuple(spis2) #Список отличается от кортежа тем, что список изменяем, а кортеж нет.
>>>kor
('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78)
>>>((1768//24.8)%3)**2.4
5.278031643091577
>>>((~(13&27))^14)<<2
-32
>>>spis3=["колебат", "колебат", "колебат", "колебат" ]
>>>'аткол' in spis3[1] + spis3[2]
True
>>>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']
>>>help(D.keys)
Help on built-in function keys:
keys() method of builtins.dict instance
Return a set-like object providing a view on the dict's keys.
>>>help(D.values)
Help on built-in function values:
values() method of builtins.dict instance
Return an object providing a view on the dict's values.
>>>D.keys() #Этот метод отображает ключи словаря
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
>>>D.values() #Этот метод отображает знаечния словаря
dict_values([23, 12, 78])
>>>S="Создать объект - символьную строку с текстом данного предложения"
>>>L=list(S.split())
>>>L
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
>>>L[L.index("-")] = ","
>>>L
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
>>>L.remove("данного")
>>>L
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения']
```

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

@ -0,0 +1,420 @@
# Отчет по теме 4
Добровольска Елизавета, А-02-23
## 1 Запуск интерактивной оболочки IDLE
Была запущена интерактивная оболочка IDLE.
## 2 Изучение стандартных встроенных функций
## 2.1 Изучение функции округления
Была применена функция round с одним и двумя аргументами и изучены различия между указанием одного и двух аргументов.
```py
>>>round(123.456,1)
123.5
>>>round(123.456,0)
123.0
>>>type(round(123.456,1))
<class 'float'>
>>>type(round(123.456,0)) #В результате получаются числа класса float, так как указано сколько цифр после запятой нужно оставить. Два вышеупомянутых варианта отличаются именно количесивом цифр, оставленных после запятой при округлении.
<class 'float'>
>>>round(123.456)
123
>>>type(round(123.456)) #В данном случае получается число типа int, так как не указано количество цифр после запятой, и по умолчанию число округляется до целого.
<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) #При указывание одного аргумента строится последовательность от 0 до указанного числа не включительно, с шагом 1.
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]
```
## 2.3 Изучение функции zip
Была применена функция zip и произведена попытка обращения к элементу созданной последовательности по индексу.
```py
>>>qq=["Dobrovolska", "Efremov", "Zelenkina", "Pohil"]
>>>ff=zip(gg,qq)
>>>tuple(ff) #В итоге получится последовательность из 4 элементов, так как в qq 4 элемента, а в gg 6. Длина равна длине самого короткого списка.
((76, 'Dobrovolska'), (85, 'Efremov'), (94, 'Zelenkina'), (103, 'Pohil'))
>>>ff[1] #Исходя из текста ошибки, можно сказать, что zip обьекты не поддерживают доступ по индексу.
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
ff[1]
TypeError: 'zip' object is not subscriptable
```
## 2.4 Изучение функции eval
Была применена функция eval.
```py
>>>fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=6
>>>dan
-126.0
```
## 2.5 Изучение функции exec
Была применена функция exec.
```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)
Был изучен и применен ряд полезных функций:
abs - выдает значение по модулю;
len - выдает длину обьекта;
max - выдает максимальное число из списка введенных в аргумент;
min - выдает минимальное число из списка введенных в аргумент;
pow - при двух аргументах: возводит первый в степень второго, при наличие третьего аргумента делит получившийся результат на третий аргумент и показывает остаток;
sum - суммирует числа;
divmod - возвращает кортеж (a // b, a % b), где а и b соответственно первый и второй аргумент;
map - применяет функцию из первого аргумента к каждому элементу итерируемого обьекта, который указан во втором аргументе.
```py
>>>abs(-5)
5
>>>len("hi")
2
>>>max(3, 4)
4
>>>min(3, 4)
3
>>>pow(3, 2)
9
>>>pow(3, 2, 3)
0
>>>sum([2, 3])
5
>>>divmod(7, 2)
(3, 1)
>>>list(map(lambda x: x*2, [1, 2, 3, 4]))
[2, 4, 6, 8]
```
## 3 Изучение функций из модуля math для работы с математическими выражениями и операциями.
Был импортирован и изучен модуль math. Были изучены и применены некоторые функции из модуля math.
sin - считает и выдает синус аргумента в радианах;
acos - считает и выдает арккосинус аргумента в радианах;
degrees - переводит число в радианах в градусы;
radians - переводит число в градусах в радианы;
exp - выдает значение числа e возведенного в степень, которая указана в аргументе;
log - считает натуральный логарифм числа;
log10 - считает делятичный логарифм числа;
sqrt - считает корень из числа в аргументе;
ceil - округляет число вверх;
floor - округляет число вниз;
pi - данная функция является представлением числа пи в питоне.
```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(180)
-0.8011526357338304
>>>math.acos(0.5)
1.0471975511965979
>>>help(math.degrees)
Help on built-in function degrees in module math:
degrees(x, /)
Convert angle x from radians to degrees.
>>>math.degrees(0.5)
28.64788975654116
>>>math.radians(28)
0.4886921905584123
>>>math.exp(1)
2.718281828459045
>>>math.log(1)
0.0
>>>math.log10(1)
0.0
>>>math.sqrt(9)
3.0
>>>help(math.ceil)
Help on built-in function ceil in module math:
ceil(x, /)
Return the ceiling of x as an Integral.
This is the smallest integer >= x.
>>>math.ceil(4.7)
5
>>>math.floor(4.7)
4
>>>math.pi
3.141592653589793
>>>math.sin(2*math.pi/7+math.exp(0.23))
0.8334902641414562
```
## 4 Изучение модуля cmath для работы с комплексными числами
Был импортирован и изучен модуль 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 Изучения стандартного модуля randon для работы с псевдослучайными числами
Были самостоятельно изучены и применены методы модуля random:
random - равномерно распределенное случайное число;
uniform- равномерно распределенное случайное число в диапазоне, заданном двумя аргументами;
randint - случайные целые числа в диапазоне от значения первого аргумента до значения второго;
gauss - нормально распределенное случайное число с средним равным певому аргументу и стандартным отклонением равным второму аргументу;
choice - случайный выбор из совокупности указанной в аргументе;
shuffle - случайная перестановка элементов списка в аргументе;
sample - случайный выбор подмножества элементов из списка в первом аргументе (количество элементов равно числу, указанному во втором аргументе);
betavariate - случайное число с бета-распределением, где альфа равна первому аргументу, а бета равна второму аргументу;
gammavariate - случайное число с гамма-распределением, где альфа равна первому аргументу, а бета равна второму аргументу.
Также был самостоятельно создан список с 4 случайными значениями, подчиняющимися, соответственно, равномерному, нормальному, бета и гамма – распределениям и с любыми допустимыми значениями параметров этих распределений.
```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()
>>>r = random.random()
>>>r
0.915829800247012
>>>u = random.uniform(1, 10)
>>>u
6.398971726523061
>>>rnd = random.randint(1, 10)
>>>rnd
3
>>>g = random.gauss(0, 1)
>>>g
1.6312864971445826
>>>l = ["a", "b", "c"]
>>>ch = random.choice(l)
>>>ch
'b'
>>>random.shuffle(l)
>>>l
['b', 'a', 'c']
>>>s = random.sample(l, 2)
>>>s
['c', 'b']
>>>b = random.betavariate(2, 5)
>>>b
0.20276652629326136
>>>g = random.gammavariate(2, 2)
>>>g
4.361266204290336
>>>random_list = [random.uniform(1, 10), random.gauss(5, 2), random.betavariate(2, 5), random.gammavariate(2, 2)]
>>>random_list
[1.8429009082320071, 5.582736307655225, 0.21284691290111155, 2.9271296316078654]
```
## 6 Изучение модуля time для работы со временем и календарями
Были изучены и применены методы из модуля time:
time - возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г;
gmtime - возвращает объект класса struct_time, содержащий полную информацию о текущем времени (UTC): год (tm_year), месяц (tm_mon), день tm_mday)...;
localtime - для получения «местного» времени (которое стоит на компьютере);
asctime - преобразовывает представление времени из кортежа в строку (просто отображает время в формате строки);
ctime - преобразовывает время в секундах, прошедшего с начала эпохи, в строку;
sleep - прерывает работу программы на заданное время в секундах;
mktime - преобразовает время из типа кортежа или struct_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()
>>>c1
1757585123.0268378
>>>c1=time.time() #Для проверки заново применили функцию спустя 14 секунд.
>>>c1
1757585137.4425445
>>>c2=time.time()-c1
>>>c2
272.143741607666
>>>dat=time.gmtime()
>>>dat
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=11, tm_hour=10, tm_min=13, tm_sec=29, tm_wday=3, tm_yday=254, tm_isdst=0)
>>>dat.tm_mon
9
>>>tim=time.localtime()
>>>tim
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=11, tm_hour=12, tm_min=15, tm_sec=7, tm_wday=3, tm_yday=254, tm_isdst=0)
>>>time.asctime()
'Thu Sep 11 12:16:36 2025'
>>>time.ctime()
'Thu Sep 11 12:16:57 2025'
>>>time.sleep(2) #Две секунды в IDLE не появлялось приглашение для ввода команды.
>>>time.mktime(tim)
1757585707.0
>>>time.localtime(c1)
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=11, tm_hour=12, tm_min=5, tm_sec=37, tm_wday=3, tm_yday=254, tm_isdst=0)
```
## 7 Изучение графических функций
Был создан линейный график, на котором изображена зависимость сигналов от времени.
```py
>>>import pylab
>>>x=list(range(-3,55,4))
>>>x
[-3, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53]
>>>t=list(range(15))
>>>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 0x0000022B3EEDAD50>]
>>>pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
>>>pylab.xlabel('время')
Text(0.5, 0, 'время')
>>>pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
>>>pylab.show() #Отображение графика на экране
```
![](Ris1.png)
Далее были созданы два линейных графика на одном поле. (По оси y - значения из списка, по оси х - порядковый номер значений).
```py
>>>X1=[12,6,8,10,7]
>>>X2=[5,7,9,11,13]
>>>pylab.plot(X1)
[<matplotlib.lines.Line2D object at 0x0000022B3EFEB890>]
>>>pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x0000022B3EFEB9D0>]
>>>pylab.show()
```
![](Ris2.png)
Также была создана круговая диаграмма.
```py
>>>region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы
>>>naselen=[65,12,23,17] # Значения для диаграммы
>>>pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
([<matplotlib.patches.Wedge object at 0x0000022B3EEAE3C0>, <matplotlib.patches.Wedge object at 0x0000022B42875590>, <matplotlib.patches.Wedge object at 0x0000022B42875950>, <matplotlib.patches.Wedge object at 0x0000022B42875BD0>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
>>>pylab.show() #Отображение диаграммы
```
![](Ris3.png)
Самостоятельно была создана гистограмма (по оси у - частота повторения значений, по оси х сами значения)
```py
>>>data = [1, 2, 3, 3, 2, 3, 3, 3, 2]
>>>pylab.hist(data, bins=3)
(array([1., 3., 5.]), array([1. , 1.66666667, 2.33333333, 3. ]), <BarContainer object of 3 artists>)
>>>pylab.title("Гистограмма")
Text(0.5, 1.0, 'Гистограмма')
>>>pylab.show()
```
![](Ris4.png)
Самостоятельно была создана столбиковая диаграмма, где по оси х - категории, а по оси у - значения, относящиеся к каждой категории.
```py
>>>c = ['A', 'B', 'C', 'D']
>>>v = [25, 40, 30, 50]
>>>pylab.bar(c, v)
<BarContainer object of 4 artists>
>>>pylab.title("Столбиковая диаграмма")
Text(0.5, 1.0, 'Столбиковая диаграмма')
>>>pylab.show()
```
![](Ris5.png)
## 8 Изучение модуля statistics для работы в сфере статистики
Самостоятельно был импортирован и изучен модуль 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']
>>>data = [1, 2, 2, 3, 4, 5, 5, 5, 6]
>>>mean = statistics.mean(data)
>>>mean
3.6666666666666665
>>>median = statistics.median(data)
>>>median
4
>>>mode = statistics.mode(data)
>>>mode
5
```
## 9 Завершение работы в IDLE
Был завершен сеанс в среде IDLE.

@ -0,0 +1,42 @@
# Общее контрольное задание по теме 4
Добровольска Елизавета, А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
• Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
• Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
• Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
• Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
• Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
• Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
```py
>>>divmod((round(cmath.phase(0.2+0.8j), 2))*20, 3)
(8.0, 2.6000000000000014)
>>>divmod(math.floor((round(cmath.phase(0.2+0.8j), 2))*20), 3) #Для получения остатка в целом виде и делении целых чисел, можно использовать такое выражение.
(8, 2)
>>>v = time.localtime()
>>>v
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=11, tm_hour=14, tm_min=3, tm_sec=26, tm_wday=3, tm_yday=254, tm_isdst=0)
>>>st = v.tm_hour, v.tm_min
>>>st = str(v.tm_hour)+" hour "+str(v.tm_min)+" min "
>>>st
'14 hour 3 min '
>>>ned = ["пн", "вт", "ср", "чт", "пт", "сб", "вскр"]
>>>random.sample(ned, 3)
['пн', 'вскр', 'вт']
>>>random.choice(list(range(14, 33, 3)))
20
>>>N = round(random.gauss(15, 4))
>>>N
15
>>>import string #Импортировали модуль в котором есть латинский алфавит, чтобы из него выбрать буквы. Без использования этого модуля создавать список с алфавитом нужно было бы вручную.
>>>random.sample(string.ascii_letters, N)
['M', 'J', 'X', 'H', 'R', 'D', 'V', 'U', 'c', 'g', 'l', 'k', 'm', 't', 'w']
>>>time.localtime().tm_min - v.tm_min
24
```

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

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

После

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

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

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

После

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

@ -0,0 +1,350 @@
# Отчет по теме 5
Добровольска Елизавета, А-02-23
## 1 Запуск интерактивной оболочки IDLE
Была запущена интерактивная оболочка IDLE.
## 2 Изучение блока ЕСЛИ
Были изучены и применены различные конструкции блоков с использованием условия if. Рассмотрены также elif и else. Изучены блоки условий, записываемые в одну строку.
```py
>>>porog = 35
>>>rashod1 = 21
>>>rashod2 = 15
>>>if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
>>>dohod
-8
>>>if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
>>>dohod
-8
>>>if porog==3:
dohod=1
elif porog==4:
dohod=2
elif porog==5:
dohod=3
else:
dohod=0
>>>dohod
0
>>>dohod=2 if porog>=4 else 0
>>>dohod
2
>>>if porog>=5 : rashod1=6; rashod2=0
>>>rashod1
6
>>>rashod2
0
```
## 3 Изучение блока ДЛЯ
Был изучен и применен блок for, разобрана простая конструкция и несколько сложных.
## 3.1 Изучение простого цикла for
Был применен простой цикл for, который перебирает числа из сгенерированной последовательности и каждый раз увеличивает заданное значение на это число.
```py
>>>temperatura=5
>>>for i in range(3,18,3):
temperatura+=i
>>>temperatura
50
```
## 3.2 Изучение первого сложного цикла for
Был применен цикл for, который приписывает к списку первый его элемент каждую итерацию, до тех пор, пока длина списка не будет равна или больше 10. Испробованы два способа передачи списка - как изменяемый список и как неизменяемую копию.
```py
>>>sps=[2,15,14,8]
>>>for k in sps:
if len(sps)<=10:sps.append(sps[0]) #В данном варианте итерации проходят по изменяющемуся списку. Каждый раз список растет на единицу и его длина увеличивается. Каждую новую итерацию у списка новая длина.
else:break
>>>sps
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
>>>sps=[2,15,14,8]
>>>for k in sps[:]:
if len(sps)<=10:sps.append(sps[0]) #В этом варианте список итерируется по копии, то есть исходному списку, чья длина всегда равна 4. Цикл выполняется 4 раза, так как список имеет 4 элемента.
else:break
>>>sps
[2, 15, 14, 8, 2, 2, 2, 2]
```
## 3.3 Изучение второго сложного цикла for
Был приненен цикл for, в котором при каждой итерации для i от 0 до 9, созданный пустой список пополняется значением от 0 до 97 и подсчитывается сумма чисел в списке. При достижении суммы числа более 500, итерация прерывается. Если же итерации успевают закончиться естественным образом и сумма получается значением менее 500, по сумма печатается на экран.
```py
>>>import random as rn
>>>sps5=[]
>>>for i in range(10):
sps5.append(rn.randint(1,97))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
374
>>>ss=0
>>>sps5=[]
>>>for i in range(10):
sps5.append(rn.randint(1,97))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
426
>>>ss=0
>>>sps5=[]
>>>for i in range(10):
sps5.append(rn.randint(1,97))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
```
## 3.4 Изучение цикла с символьной строкой
Был применен цикл, который перебирает каждый символ из stroka и дополняет им ранее созданную пустую строку stroka1.
```py
>>>stroka='Это – автоматизированная система'
>>>stroka1=""
>>>for ss in stroka:
stroka1+=" "+ss
>>>stroka1
' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а'
>>>ss
'а'
```
## 3.5 Изучение записи цикла в строке
Был использован цикл для создания сигналов (цикл создает список из чисел, выжесленных по определенному выражению, в которое входит i, изменяемое в ходе итераций от 0 до 99). А также построоен график отображения сигналов.
```py
>>>import math
>>>sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
>>>import pylab
>>>pylab.plot(range(100), sps2)
[<matplotlib.lines.Line2D object at 0x000002B75BB1E990>]
>>>pylab.title("Сигналы")
Text(0.5, 1.0, 'Сигналы')
>>>pylab.show()
```
![](pic0.png)
## 4 Изучение цикла ПОКА
Были изучены и применены различные варианты циклов с использованием блоков while.
## 4.1 Изучение цикла while со счетчиком
Был применен цикл while, который уменьшает значение rashod на 50 единиц. Здесь rashod = True до тех пор пока его значение положительное. Когда rashod становится равным 0, цикл прерывается. На каждой итерации печатается значение rashod.
```py
>>>rashod=300
>>>while rashod:
print("Расход=",rashod)
rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
## 4.2 Изучение цикла while с символьной строкой
Был применен цикл while, который для каждой i, что изменяется от 0 до длины строки stroka, вычисляет значение r, используя выражение, в которое входит i, и формирует из этих значений список. Далее по значениям из списка был построен график.
```py
>>>import math
>>>stroka='Расчет процесса в объекте регулирования'
>>>i=0
>>>sps2=[]
>>>while i<len(stroka):
r=1-2/(1+math.exp(0.1*i))
sps2.append(r)
print('Значение в момент',i,"=",r)
i+=1
Значение в момент 0 = 0.0
Значение в момент 1 = 0.049958374957880025
Значение в момент 2 = 0.09966799462495568
Значение в момент 3 = 0.14888503362331795
Значение в момент 4 = 0.197375320224904
Значение в момент 5 = 0.2449186624037092
Значение в момент 6 = 0.2913126124515909
Значение в момент 7 = 0.3363755443363322
Значение в момент 8 = 0.3799489622552249
Значение в момент 9 = 0.421899005250008
Значение в момент 10 = 0.4621171572600098
Значение в момент 11 = 0.5005202111902354
Значение в момент 12 = 0.5370495669980353
Значение в момент 13 = 0.5716699660851172
Значение в момент 14 = 0.6043677771171636
Значение в момент 15 = 0.6351489523872873
Значение в момент 16 = 0.6640367702678489
Значение в момент 17 = 0.6910694698329307
Значение в момент 18 = 0.7162978701990245
Значение в момент 19 = 0.7397830512740043
Значение в момент 20 = 0.7615941559557649
Значение в момент 21 = 0.7818063576087741
Значение в момент 22 = 0.8004990217606297
Значение в момент 23 = 0.8177540779702878
Значение в момент 24 = 0.8336546070121553
Значение в момент 25 = 0.8482836399575129
Значение в момент 26 = 0.8617231593133063
Значение в момент 27 = 0.874053287886007
Значение в момент 28 = 0.8853516482022625
Значение в момент 29 = 0.8956928738431645
Значение в момент 30 = 0.9051482536448664
Значение в момент 31 = 0.9137854901178277
Значение в момент 32 = 0.9216685544064713
Значение в момент 33 = 0.9288576214547277
Значение в момент 34 = 0.935409070603099
Значение в момент 35 = 0.9413755384972874
Значение в момент 36 = 0.9468060128462683
Значение в момент 37 = 0.9517459571646616
Значение в момент 38 = 0.9562374581277391
>>>pylab.plot(range(len(stroka)), sps2)
[<matplotlib.lines.Line2D object at 0x000002B75F66FC50>]
>>>pylab.title("процесс регульрования")
>>>pylab.show()
```
![](pic2.png)
## 4.3 Изучения блока while для проверки числа на свойство простого числа
Был применен цикл while, который проверяет остаток от деления заданного числа, на все числа начиная от половины собственного значения до 2, при этом если хоть раз этот остаток равен 0, то выводится надпись о том, что число имеет множитель и цикл прерывается. Если же остаток никогда не равен 0, то цикл выполняется до тех пор, пока делитель не будет равен единице и после этого будет выведена надпись, что число является простым.
```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
```
Также предыдущий код был изменен таким образом, что был добавлен цикл for, который еще перебирает числа от 250 до 300 включительно и выполняет вышеописанные операции с каждым числом.
```py
>>>for chislo in range(250, 301): # Проходим по диапазону чисел
kandidat = chislo // 2 # Для значений chislo > 1
while kandidat > 1:
if chislo % kandidat == 0: # Остаток от деления
print(chislo, ' имеет множитель ', kandidat)
break # else выполняться не будет
kandidat -= 1
else: # При завершении цикла while без 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 Завершение работы в IDLE
Был завершен сеанс в среде IDLE.

@ -0,0 +1,82 @@
# Общее контрольное задание по теме 5
Добровольска Елизавета, А-02-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
• Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
• Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
• Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
```py
>>>import string
>>>text = "hello my friend"
>>>for char in text:
if char in string.ascii_lowercase:
order = string.ascii_lowercase.index(char) + 1
print(char, "=", order)
else:
print("это не буква")
h = 8
e = 5
l = 12
l = 12
o = 15
это не буква
m = 13
y = 25
это не буква
f = 6
r = 18
i = 9
e = 5
n = 14
d = 4
>>>Str = "Создайте список со словами из задания данного пункта"
>>>L=list(Str.split())
>>>L
['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта']
>>>slovo = 'список'
>>>if slovo in L:
print("Это слово есть в тексте")
else: print("Этого слова нет в тексте")
Это слово есть в тексте
>>>slovo = "Привет"
>>>if slovo in L:
print("Это слово есть в тексте")
else: print("Этого слова нет в тексте")
Этого слова нет в тексте
>>>students = ["Dobrovolska", "Efremov", "Zelenkina", "Pohil"]
>>>leto = [4, 5, 3, 5]
>>>students2 = ["Efremov", "Pohil", "Zelenkina", "Dobrovolska"]
>>>zima = [5, 3, 3, 5]
>>>name=input("Введите фамилию студента: ")
Введите фамилию студента: Dobrovolska
>>>if name in students and name in students2:
leto_grade = leto[students.index(name)]
zima_grade = zima[students2.index(name)]
print("Студент:", name, ". Летняя:", leto_grade, ", Зимняя:", zima_grade)
else:
print("Студент", name, "не найден.")
Студент: Dobrovolska . Летняя: 4 , Зимняя: 5
>>>name=input("Введите фамилию студента: ")
Введите фамилию студента: ghgghg
>>>if name in students and name in students2:
leto_grade = leto[students.index(name)]
zima_grade = zima[students2.index(name)]
print("Студент:", name, ". Летняя:", leto_grade, ", Зимняя:", zima_grade)
else:
print("Студент", name, "не найден.")
Студент ghgghg не найден.
```
Загрузка…
Отмена
Сохранить