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

...

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

Автор SHA1 Сообщение Дата
KuzmenkoEA 92a69fd383 картинка2
6 дней назад
KuzmenkoEA ef05471dd5 картинка1
6 дней назад
KuzmenkoEA 8630088eae общее контрольное
6 дней назад
KuzmenkoEA 2493af9e5a отчет
6 дней назад
KuzmenkoEA 7cb8db28ae ИКЗ
1 неделю назад
KuzmenkoEA e53857626a ИКЗ
1 неделю назад
KuzmenkoEA e68f479a74 Общее контрольное
1 неделю назад
KuzmenkoEA b302cae4ba отчет
1 неделю назад
KuzmenkoEA 050c01ed6b общее контрольное
2 недель назад
KuzmenkoEA 2067717de8 картинка
2 недель назад
KuzmenkoEA 7b8712fe15 картинка
2 недель назад
KuzmenkoEA bcfcc098ee картинка
2 недель назад
KuzmenkoEA b3c7845a7d картинка
2 недель назад
KuzmenkoEA 7f8113a80f картинка
2 недель назад
KuzmenkoEA 51e2991ea5 общее контрольное
2 недель назад
KuzmenkoEA 996cfa37c7 отчёт
2 недель назад
KuzmenkoEA d8fa6aefc0 ИКЗ
3 недель назад
KuzmenkoEA 4fcfc05b90 ИКЗ
3 недель назад
KuzmenkoEA b752ce3d43 Изменил(а) на 'TEMA3/report.md'
3 недель назад
KuzmenkoEA 6a90705428 протокол
1 месяц назад
KuzmenkoEA aac80a357d общее контрольное
1 месяц назад
KuzmenkoEA 94230cfb9a отчёт
1 месяц назад
KuzmenkoEA ddefd2a5d1 Отчёт
1 месяц назад
KuzmenkoEA 079783b0b7 Изменил(а) на 'TEMA2/test.md'
1 месяц назад
KuzmenkoEA 0e2110e88d Создал(а) 'TEMA2/test.md'
1 месяц назад
KuzmenkoEA e81ff870ae общее контрольное
2 месяцев назад
KuzmenkoEA f8f6c6dd78 общее контрольное
2 месяцев назад
KuzmenkoEA 178987635a итог
2 месяцев назад
KuzmenkoEA 7fd68e7fdd контрольное задание
2 месяцев назад
KuzmenkoEA 5fd0222ee0 итог
2 месяцев назад
KuzmenkoEA 5896f91e62 итог
2 месяцев назад
KuzmenkoEA 1beba6ffb4 контрольное задание
2 месяцев назад
KuzmenkoEA 4db37a45f8 протокол
2 месяцев назад
KuzmenkoEA 20c590726d картинка
2 месяцев назад
KuzmenkoEA ed2e34766b проверка
2 месяцев назад
KuzmenkoEA 33df3cf768 проверка
2 месяцев назад
Пользователь № 15 аудитории К-522 118116fceb Контрольный вопрос
2 месяцев назад
Пользователь № 15 аудитории К-522 27d4d92105 картинки
2 месяцев назад
Пользователь № 15 аудитории К-522 337c64ae50 images
2 месяцев назад
Пользователь № 15 аудитории К-522 7ef51237d8 1 commit
2 месяцев назад

@ -0,0 +1,6 @@
#Программа по Теме 1 Кузьменко Елена Алексеевна
print('Hello')
h=input('Your name=')
import os
os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
os.getcwd()

@ -0,0 +1,33 @@
# Протокол по Теме 1 Кузьменко Елена Алексеевна
Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
import os
os.chdir('C:\Users\u522-15\Desktop\python-labs\TEMA1')
SyntaxError: incomplete input
os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
os.getcwd()
'C:\\Users\\u522-15\\Desktop\\python-labs\\TEMA1'
import os
os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
os.getcwd()
'C:\\Users\\u522-15\\Desktop\\python-labs\\TEMA1'
# test
========== RESTART: C:/Users/u522-15/Desktop/python-labs/TEMA1/p 10.py =========
Hello
Your name=Lena
import Pr0
Hello
Your name=Lena
========== RESTART: C:/Users/u522-15/Desktop/python-labs/TEMA1/Pr0.py ==========
Hello
Your name=Lena
import prb1
Как Вас зовут? Лена
Привет, Лена

@ -0,0 +1,6 @@
#Программа по Теме 1 Кузьменко Елена Алексеевна
print('Hello')
h=input('Your name=')
import os
os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
os.getcwd()

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

@ -0,0 +1,239 @@
# Отчёт по Теме 1
Кузьменко Елена, А-02-23
## 1 пункт
С сервера git склонировали папку "python-labs", в которой находится папка TEMA1 для дальнейшей работы
![](p1.png)
## 2 пункт
Открыта для выполнения ЛР1 программа-интерпетатор.
![](p2.png)
## 3 пункт
В диалогов окне введём инструкцию print('Hello'). Получим соответствующей текст:
```py
>>> print('Hello')
Hello
```
## 4 пункт
Воспользуемся ещё одной командой-инструкцией. После введения команды на следующей строчке можно написать имя.
```py
>>> h=input('Your name=')
Your name=Lena
```
## 5 пункт
С помощью следующей команды завершим работу в консоли:
```py
exit()
```
После введённой команды можно заметить, что диалоговое окно закрылось.
## 6 пункт
Работу с интерактивной графической оболочкой IDLE. Запустим:
![](p3.png)
## 7-8 пункты
Было изучено главное командное окно среды.
Следующей инструкцией зададим рабочий каталог:
```py
>>>import os
>>>os.chdir(r"C:\Users\u522-15\Desktop\python-labs\TEMA1")
>>>os.getcwd()
'C:\\Users\\u522-15\\Desktop\\python-labs\\TEMA1'
```
## 9 пункт
С помощью настройки диалового окна поменяем оформление, а именно шрифт, размер окна и "цвет комментария"
![](p9.png)
![](p92.png)
![](p93.png)
После применения изменений в командной строке можно заметить изменения:
![](p94.png)
## 10 пункт
Откроем окно текстового редактора:
![](p10.png)
Тут же попробуем записать те же команды, которые мы упоминали в предыдущих пунктах:
![](p101.png)
Чтобы активировать выполнения нашего кода, необходимо прибегнуть к одному из способов:
1)Кнопка Run Modelu
2)Та же кнопка, но по горячей клавише F5
Это позволит за один запуск применить сразу все команды. Выполнение представлено в консоли:
```py
========== RESTART: C:/Users/u522-15/Desktop/python-labs/TEMA1/p 10.py =========
Hello
Your name=Lena
```
Можно также воспользоваться и другим способом. Для этого впишем название файла с нашим сохранённым кодом:
```py
>>>import Pr0
Hello
Your name=Lena
```
## 11 пункт
С помощью команды import из текущего каталога откроем файл prb1.py
```py
>>>import prb1
Как Вас зовут? Лена
Привет, Лена
```
Код представлял собой вопрос "Как Вас зовут?"
В данном примере было изучено применения предыдущих команд путём их редактиварония
## 12 пункт
Попробуем в диалоговом окне открыть файл иного расширения, который представляет из себя результат работы компилятора.
![](p12.png)
Хаотичный набор символов, представленный на картинке, можно сочесть за ошибку, так как редактор открывает файл и ожидает текст, однако файл формата .pyc содержит двоичные данные(представляет из себя байт код), то есть каждый байт, который пытается прочитать машина превращаются в случайные символы.
Из чего можно сделать вывод, что файл.pyc уже скомпилированный байт-код(легче и эффективнее интепретировать), а не текст, который должен прочитать редактор IDLE.
## 13 пункт
Все данные из командной строки были занесены в текстовый редактор. Файл используется как протокол.
![](p13.png)
## 14 пункт
Изучение раздела помощи Help. Его вариации:
1.В диалогово окне:
![](p13.png)
2.В командной строке введём инструкцию помощи по команде print:
```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.
```
В одной строке можно также ввести инструкции нескольких функций:
```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.
```
3)С помощью клавиши F1 можно перейти на следующий сайт:
![](p141.png)
Перейдя по ссылке Index перейдём в поисковик функций и найдём команду: print() (built-in function)
![](p142.png)
Здесь можно посмотреть справку:
![](p143.png)
В окне пункта 1) также можно открть сайт по кнопке Python Docs.
## 15 пункт
1.Открыли и прогнали файл prb1.py
![](p15.png)
2.По такому же принципу проверили файл Pr0.py
![](p151.png)
3.Запустим файл tdemo_chaos.py
![](p152.png)
Можно менять демонстрацию графического модуля, вот несколько вариантов:
1)Clock
![](p153.png)
2)Tree
![](p154.png)
3)Peace
![](p155.png)
## 16 пункт
Завершение работы со средой exit().

@ -0,0 +1,20 @@
## Общий контрольный вопрос по Теме 1
Кузьменко Елена, А-02-23
## Вопрос
4)Можно ли писать несколько инструкций в одной строке командного окна?
## Ответ
Можно, в случае, если команды разделены точкой с запятой. В данной лабораторной работе был пример(п.14), когда необходимо было найти справку по функция print(), input().
Был введён следующий код:
```py
>>>help(print); help(input)
```
Результат данной строчки вывел справку данных инструкций по порядку.
## Итог: Можно, используя ";".

@ -0,0 +1,454 @@
#Протокол по Теме 2 Кузьменко Е.А.
#1
>>> import os
>>> os.chdir(r"C:\Users\Admin\Desktop\python-labs\TEMA2")
>>> os.getcwd()
'C:\\Users\\Admin\\Desktop\\python-labs\\TEMA2'
#2
>>> 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__', '__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_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
>>> type(f1)
<class 'int'>
>>> del f1
>>> del f2
>>> dir(f1)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
dir(f1)
NameError: name 'f1' is not defined
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
#3
>>> gg1=1.6; gg1
1.6
>>> hh1='Строка'; hh1
'Строка'
>>> 73sr=3; 73sr
SyntaxError: invalid syntax
>>> and=7; and
SyntaxError: invalid syntax
#4
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', '__peg_parser__', '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']
>>> key=keyword.kwlist
>>> key
['False', 'None', 'True', '__peg_parser__', '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']
>>> type(key)
<class 'list'>
#5
>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', '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', 'all', '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']
>>> help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
>>> abs(13-40)
27
>>> help(len)
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
>>> len("2932")
4
>>> len(key)
36
>>> help(max)
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the largest argument.
>>> max(0,19,20,-2,200,-1012,99,134)
200
>>> max("в", "з", "щ", "я")
'я'
>>> help(min)
Help on built-in function min in module builtins:
min(...)
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its smallest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the smallest argument.
>>> min(0,19,20,-2,200,-1012,99,134)
-1012
>>> min("в", "з", "щ", "я")
'в'
>>> help(pow)
Help on built-in function pow in module builtins:
pow(base, exp, mod=None)
Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.
>>> pow(2,3)
8
>>> pow(2,3,3)
2
>>> pow(4,-3)
0.015625
>>> 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)
123
>>> round(123.456,1)
123.5
>>> round(123.456,-1)
120.0
>>> help(sorted)
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
>>> n=[-10,8,2,-3,5.5]
>>> sorted(n)
[-10, -3, 2, 5.5, 8]
>>> sorted(n,reverse=True)
[8, 5.5, 2, -3, -10]
>>> w=["apple","banana","kiwi","strawberry"]
>>> sorted(w)
['apple', 'banana', 'kiwi', 'strawberry']
>>> sorted(w,reverse=True)
['strawberry', 'kiwi', 'banana', 'apple']
>>> help(zip)
Help on class zip in module builtins:
class zip(object)
| zip(*iterables) --> A zip object yielding tuples until an input is exhausted.
|
| >>> list(zip('abcdefg', range(3), range(4)))
| [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
|
| The zip object yields n-length tuples, where n is the number of iterables
| passed as positional arguments to zip(). The i-th element in every tuple
| comes from the i-th iterable argument to zip(). This continues until the
| shortest argument is exhausted.
|
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __iter__(self, /)
| Implement iter(self).
|
| __next__(self, /)
| Implement next(self).
|
| __reduce__(...)
| Return state information for pickling.
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
>>> list1=[1,2,3];list2=['a','b','c']
>>> z=zip(list1,list2)
>>> list(z)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> list3=[4,5,6]
>>> list(zip(list1,list2,list3))
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]
#6
>>> Gg1=45
>>> gg1
1.6
#7
#7.1
>>> bb1=True; bb2=False
>>> bb1;bb2
True
False
>>> type(bb1)
<class 'bool'>
#7.2
>>> ii1=-1234567890;ii1;type(ii1)
-1234567890
<class 'int'>
>>> ff1=-8.9876e-12;ff1;type(ff1)
-8.9876e-12
<class 'float'>
>>> dv1=0b1101010;dv1;type(dv1)
106
<class 'int'>
>>> vsm1=0o52765;vsm1;type(vsm1)
22005
<class 'int'>
>>> shest1=0x7109af6;shest1;type(shest1)
118528758
<class 'int'>
>>> cc1=2-3j;cc1;type(cc1)
(2-3j)
<class 'complex'>
>>> a=3.67;b=-0.45;cc2=complex(a,b);cc2;type(cc2)
(3.67-0.45j)
<class 'complex'>
#7.3
>>> ss1='Это - строка символов';ss1
'Это - строка символов'
>>> ss1="Это - строка символов";ss1
'Это - строка символов'
>>> ss1a="Это - \" строка символов \", \n \t выводимая на двух сторонах"; print(ss1a)
Это - " строка символов ",
выводимая на двух сторонах
>>> ss1b='Меня зовут: \n Кузьменко Е.А.'; print(ss1b)
Меня зовут:
Кузьменко Е.А.
>>> mnogo="""Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые учавствуют в операции."""; print(mnogo)
Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые учавствуют в операции.
>>> ss1
'Это - строка символов'
>>> ss1[0]
'Э'
>>> ss1[8]
'р'
>>> ss1[-2]
'о'
>>> ss1[6:9]
'стр'
>>> ss1[13:]
'символов'
>>> ss1[:13]
'Это - строка '
>>> ss1[5:-8]
' строка '
>>> ss1[3:17:2]
' тоасм'
>>> ss1[4]='='
Traceback (most recent call last):
File "<pyshell#120>", line 1, in <module>
ss1[4]='='
TypeError: 'str' object does not support item assignment
>>> ss1=ss1[:4]+'='+ss1[5:];ss1
'Это = строка символов'
#Примеры с ss1b
>>> print(ss1b)
Меня зовут:
Кузьменко Е.А.
>>> ss1b
'Меня зовут: \n Кузьменко Е.А.'
>>> ss1b[0]
'М'
>>> ss1b[14:]
'Кузьменко Е.А.'
>>> ss1b[0:15:3]
'Мяот\n'
>>> ss1b1=ss1b[:10]+' : \n'+ss1b[14:];print(ss1b1)
Меня зовут :
Кузьменко Е.А.
#Объекты разных типов
>>> x1=6-24j;x1;type(x1)
(6-24j)
<class 'complex'>
>>> x2=0.14e-13;x2;type(x2)
1.4e-14
<class 'float'>
>>> x3=0b0101;x3;type(x3)
5
<class 'int'>
>>> x4=True;x4;type(x4)
True
<class 'bool'>
>>> x5=None;x5;type(x5)
<class 'NoneType'>
#8
#8.1
>>> spis1=[111,'Spisok',(5-9j)];spis1
[111, 'Spisok', 5-9j]
>>> stup=[0,0,1,1,1,1,1,1,1];stup
[0, 0, 1, 1, 1, 1, 1, 1, 1]
>>> spis=[1,2,3,4,
5,6,7,
8,9,10]
>>> spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> spis1[-1]
(5-9j)
>>> stup[-8::2] #Начииная от 8 элемента с конца и заканчивая последним значением с шагом 2
[0, 1, 1, 1]
>>> spis1[1]='Список';spis1
[111, 'Список', (5-9j)]
>>> len(spis1)
3
#Методы добавления и удаления объекта
>>> dir()
['Gg1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'bb1', 'bb2', 'builtins', 'cc1', 'cc2', 'dv1', 'f', 'ff1', 'gg1', 'hh1', 'ii1', 'key', 'keyword', 'list1', 'list2', 'list3', 'mnogo', 'n', 'os', 'rating', 'shest1', 'spis', 'spis1', 'ss1', 'ss1a', 'ss1b', 'ss1b1', 'students', 'stup', 'vsm1', 'w', 'x1', 'x2', 'x3', 'x4', 'x5', 'z', 'z1']
>>> help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
>>> spis1.append('New item');spis1
[111, 'Список', (5-9j), 'New item']
>>> spis1+['New item'];spis1 #Только отображается!
[111, 'Список', (5-9j), 'New item', 'New item']
[111, 'Список', (5-9j), 'New item']
>>> spis1.pop(1)
'Список'
>>> spis1
[111, (5-9j), 'New item']
>>> spis1.append(ss1b);print(spis1)
[111, (5-9j), 'New item', 'Меня зовут: \n Кузьменко Е.А.']
#Другие методы
>>> spis1.insert(3,'Новый объект');spis1 #Вставляет объект на указанную позицию
[111, (5-9j), 'New item', 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.']
>>> spis1.remove('New item');spis1 #Удаляет конкретный объект
[111, (5-9j), 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.']
>>> spis2=['aa',123,'bb'];spis2
['aa', 123, 'bb']
>>> spis1.extend(spis2);spis1 #Добавляет объекты в конец списка
[111, (5-9j), 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.', 'aa', 123, 'bb']
>>> spis2.clear();spis2 #Очищает список
[]
>>> spis3=[-9,2,5,0,10,-11];spis3.sort();spis3 #Сортирует по возрастанию
[-11, -9, 0, 2, 5, 10]
>>> spis3.sort(reverse=True);spis3 #Сортирует по убыванию
[10, 5, 2, 0, -9, -11]
>>> spis1.reverse();spis1 #Выписывает список в обратном порядке
['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111]
>>> copy1=spis1.copy();copy2=spis3.copy();print(copy1,copy2) #Копирует список
['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111] [10, 5, 2, 0, -9, -11]
>>> spis4=[1,1,0,2,4,5,5,1];spis4.count(1) #Считает сколько раз конкретный элемент вошёл в список
3
>>> spis4.index(5) #Находит индекс первого вхождения "5"
5
#Вложенные списки
>>> spis2=[spis1,[4,5,6,7]];spis2
[['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]
>>> spis2[0][1] #Обращение к элементу первого списка(т.к. "0")
123
>>> spis2[0][1]=78;spis2;spis1
[['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]
['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111]
>>> spis0=[123, 'ice cream', False, spis2];spis0
[123, 'ice cream', False, [['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]]
#8.2
>>> 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);kort1 #Первое появление двойки
4
>>> kort1.count(222)
1
>>> kort1[2]=90;kort1 #Нельзя изменить кортеж
Traceback (most recent call last):
File "<pyshell#207>", line 1, in <module>
kort1[2]=90;kort1
TypeError: 'tuple' object does not support item assignment
>>> kort3=(16,'boo',[1,2,"aa"],(2,"bb",2));kort3
(16, 'boo', [1, 2, 'aa'], (2, 'bb', 2))
#8.3
>>> 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]
#Создание словарей
>>> dic2={1:'mean',2:'standart deviation',3:'correlation'};dic2
{1: 'mean', 2: 'standart deviation', 3: 'correlation'}
>>> dic3={'statics':dic2,'POAS':['base','elementary','programming']};dic3
{'statics': {1: 'mean', 2: 'standart deviation', 3: 'correlation'}, 'POAS': ['base', 'elementary', 'programming']}
>>> 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 Кузьменко Е.А.'}
>>> kort11=(2,6,'sa',True,False,12,1);kort11
(2, 6, 'sa', True, False, 12, 1)
>>> spis11=[2,'oo','bb',3,5];spis11
[2, 'oo', 'bb', 3, 5]
>>> dic11=dict(zip(kort11,spis11));dic11
{2: 2, 6: 'oo', 'sa': 'bb', True: 3, False: 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]
#8.4
>>> mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'};mnoz1
{'двигатель', 'микропроцессор', 'линия связи', 'датчик'}
>>> len(mnoz1)
4
>>> 'датчик' in mnoz1
True
>>> mnoz1.add('реле');mnoz1
{'двигатель', 'микропроцессор', 'реле', 'линия связи', 'датчик'}
>>> mnoz1.remove('линия связи');mnoz1
{'двигатель', 'микропроцессор', 'реле', 'датчик'}
>>> mnoz2={4.12,'rr',True,True,2,2,3.2,'rr','rr',(1,2)};mnoz2
{True, 2, 3.2, (1, 2), 4.12, 'rr'}
>>> len(mnoz2)
6
>>> 2 in mnoz2
True
>>> 3 in mnoz2
False
>>> mnoz2.add('oo');mnoz2
{True, 2, 3.2, (1, 2), 4.12, 'oo', 'rr'}
>>> mnoz2.remove(3.2);mnoz2
{True, 2, (1, 2), 4.12, 'oo', 'rr'}
#9
#Завершение работы exit()

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

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

После

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

@ -0,0 +1,514 @@
# Отчёт по Теме 2
Кузьменко Елена, А-02-23
## 1.Работа в оболочке IDLE. Задание рабочего каталога.
```py
>>> import os
>>> os.chdir(r"C:\Users\Admin\Desktop\python-labs\TEMA2")
>>> os.getcwd()
'C:\\Users\\Admin\\Desktop\\python-labs\\TEMA2'
```
Был открыт текстовый редактор для дальнейшего заполнения протокола.
![](p1.png)
Файл Pr0.py(в каталоге ТЕМА2) будет нести в себе все команды и их вывод данной лаборатрной работы.
## 2.Простые объекты
Операции присваивания представлены в следующем примере:
```py
>>> f1=16; f2=3
>>> f1,f2
(16, 3)
>>> f1;f2
16
3
```
Здесь f1,f2 - переменные, несущие в себе значения, которые задаются после знака "=".
Если мы захотим узнать, какое значение имеет определённая переменная, это можно провести через знак ","(в одной строке) или ";"(каждая следующая строка), в зависимости от того, как мы собираемся разделять полученные значения.
Следующая функция позволяет узнать какие объекты на данный момент существуют в среде:
```py
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
```
Помимо встроенных в среду объектов, также можно заметить нами созданные: f1 и f2.
Добавив аргумент, мы обращаемся к конкретному объекту:
```py
>>> dir(f1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__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_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
```
Функцией type() для этого же объекта определим классовую принадлежность:
```py
>>> type(f1)
<class 'int'>
```
В данном случае переменная f1 и вправду несёт в себе целое число "16".
Если нам необходимо удалить объект из оперативной памяти следует использовать инструкцию del. Попробуем удалить f1 и f2:
```py
>>> del f1
>>> del f2
>>> dir(f1)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
dir(f1)
NameError: name 'f1' is not defined
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
```
Заметим, что эти объекты были удалены, а при прямом указания аргумента в инструкции dir() выдаёт ошибку.
## 3.Именования объектов в среде.
Правильные:
```py
>>> gg1=1.6; gg1
1.6
>>> hh1='Строка'; hh1
'Строка'
```
Неправильные:
```py
>>> 73sr=3; 73sr
SyntaxError: invalid syntax
>>> and=7; and
SyntaxError: invalid syntax
```
## 4.Список ключевых слов.
```py
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', '__peg_parser__', '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']
>>> key=keyword.kwlist
>>> key
['False', 'None', 'True', '__peg_parser__', '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']
>>> type(key)
<class 'list'>
```
## 5.Список встроенных идентификаторов.
```py
>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', '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', 'all', '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']
```
Изучим некоторые функции из данного списка. Для этого также будем обращаться к помощи по следующей инструкции(для остальных функций по такому же принципу, можно посмотреть в протоколе):
## Модуль числа
```py
>>> help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
>>> abs(13-40)
27
```
## Количество элементов в объекте
```py
>>> len("2932")
4
>>> len(key)
36
```
## Максимальное и минимальное значение
```py
>>> max(0,19,20,-2,200,-1012,99,134)
200
>>> max("в", "з", "щ", "я")
'я' #По алфавиту позже остальных букв в данном перечне
>>> min(0,19,20,-2,200,-1012,99,134)
-1012
>>> min("в", "з", "щ", "я")
'в' #По алфавиту раньше остальных букв в данном перечне
```
## Возведение числа в степень
```py
>>> pow(2,3)
8
>>> pow(2,3,3) #3 аргумент - mod, вычисляет остаток в результате деления на mod
2
>>> pow(4,-3)
0.015625
```
## Округление
```py
>>> round(123.456)
123
>>> round(123.456,1)
123.5
>>> round(123.456,-1)
120.0
```
## Сортировка по возрастанию и убыванию
```py
>>> n=[-10,8,2,-3,5.5]
>>> sorted(n)
[-10, -3, 2, 5.5, 8]
>>> sorted(n,reverse=True)
[8, 5.5, 2, -3, -10]
>>> w=["apple","banana","kiwi","strawberry"]
>>> sorted(w)
['apple', 'banana', 'kiwi', 'strawberry']
>>> sorted(w,reverse=True)
['strawberry', 'kiwi', 'banana', 'apple']
```
## Суммирование
```py
>>> sum(n)
2.5
>>> sum(n,10) #Задаём начальное значение(по умолчанию 0, здесь - 10)
12.5
>>> sum([x*2 for x in n]) #Каждое значение берётся в квадрат и суммируется с последующим
5.0
```
## Объединение нескольких объектов
```py
>>> list1=[1,2,3];list2=['a','b','c']
>>> z=zip(list1,list2)
>>> list(z)
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> list3=[4,5,6]
>>> list(zip(list1,list2,list3))
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]
```
## 6.Регистр
```py
>>> Gg1=45
>>> gg1
1.6
```
Если мы введём новую переменную, отличающуюся лишь регистром, она будет считаться отдельной. Gg1 и gg1 - разные переменные с разными значениями.
## 7.Базовые типы объектов
## 7.1.Логический тип.
```py
>>> bb1=True; bb2=False
>>> bb1;bb2
True
False
>>> type(bb1)
<class 'bool'>
```
## 7.2.Другие простые типы
```py
>>> ii1=-1234567890;ii1;type(ii1)
-1234567890
<class 'int'>
>>> ff1=-8.9876e-12;ff1;type(ff1)
-8.9876e-12
<class 'float'>
>>> dv1=0b1101010;dv1;type(dv1)
106
<class 'int'>
>>> vsm1=0o52765;vsm1;type(vsm1)
22005
<class 'int'>
>>> shest1=0x7109af6;shest1;type(shest1)
118528758
<class 'int'>
>>> cc1=2-3j;cc1;type(cc1)
(2-3j)
<class 'complex'>
>>> a=3.67;b=-0.45;cc2=complex(a,b);cc2;type(cc2)
(3.67-0.45j)
<class 'complex'>
```
## 7.3.Строка символов
```py
>>> ss1='Это - строка символов';ss1
'Это - строка символов'
>>> ss1="Это - строка символов";ss1
'Это - строка символов'
>>> ss1a="Это - \" строка символов \", \n \t выводимая на двух сторонах"; print(ss1a)
Это - " строка символов ",
выводимая на двух сторонах
>>> ss1b='Меня зовут: \n Кузьменко Е.А.'; print(ss1b)
Меня зовут:
Кузьменко Е.А.
>>> mnogo="""Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые учавствуют в операции."""; print(mnogo)
Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее более сложный тип из тех, которые учавствуют в операции.
>>> ss1
'Это - строка символов'
>>> ss1[0]
'Э'
>>> ss1[8]
'р'
>>> ss1[-2]
'о'
>>> ss1[6:9]
'стр'
>>> ss1[13:]
'символов'
>>> ss1[:13]
'Это - строка '
>>> ss1[5:-8]
' строка '
>>> ss1[3:17:2]
' тоасм'
>>> ss1[4]='='
Traceback (most recent call last):
File "<pyshell#120>", line 1, in <module>
ss1[4]='='
TypeError: 'str' object does not support item assignment
>>> ss1=ss1[:4]+'='+ss1[5:];ss1
'Это = строка символов'
# Примеры с ss1b
>>> print(ss1b)
Меня зовут:
Кузьменко Е.А.
>>> ss1b
'Меня зовут: \n Кузьменко Е.А.'
>>> ss1b[0]
'М'
>>> ss1b[14:]
'Кузьменко Е.А.'
>>> ss1b[0:15:3]
'Мяот\n'
>>> ss1b1=ss1b[:10]+' : \n'+ss1b[14:];print(ss1b1)
Меня зовут :
Кузьменко Е.А.
>>> x1=6-24j;x1;type(x1)
(6-24j)
<class 'complex'>
>>> x2=0.14e-13;x2;type(x2)
1.4e-14
<class 'float'>
>>> x3=0b0101;x3;type(x3)
5
<class 'int'>
>>> x4=True;x4;type(x4)
True
<class 'bool'>
>>> x5=None;x5;type(x5)
<class 'NoneType'>
```
## 8.Сложные типы объектов.
## 8.1.Список
```py
>>> spis1=[111,'Spisok',(5-9j)];spis1
[111, 'Spisok', 5-9j]
>>> stup=[0,0,1,1,1,1,1,1,1];stup
[0, 0, 1, 1, 1, 1, 1, 1, 1]
>>> spis=[1,2,3,4,
5,6,7,
8,9,10]
>>> spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> spis1[-1]
(5-9j)
>>> stup[-8::2] #Начииная от 8 элемента с конца и заканчивая последним значением с шагом 2
[0, 1, 1, 1]
>>> spis1[1]='Список';spis1
[111, 'Список', (5-9j)]
>>> len(spis1)
3
# Методы добавления и удаления объекта
>>> dir()
['Gg1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'bb1', 'bb2', 'builtins', 'cc1', 'cc2', 'dv1', 'f', 'ff1', 'gg1', 'hh1', 'ii1', 'key', 'keyword', 'list1', 'list2', 'list3', 'mnogo', 'n', 'os', 'rating', 'shest1', 'spis', 'spis1', 'ss1', 'ss1a', 'ss1b', 'ss1b1', 'students', 'stup', 'vsm1', 'w', 'x1', 'x2', 'x3', 'x4', 'x5', 'z', 'z1']
>>> help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
>>> spis1.append('New item');spis1
[111, 'Список', (5-9j), 'New item']
>>> spis1+['New item'];spis1 #Только отображается!
[111, 'Список', (5-9j), 'New item', 'New item']
[111, 'Список', (5-9j), 'New item']
>>> spis1.pop(1)
'Список'
>>> spis1
[111, (5-9j), 'New item']
>>> spis1.append(ss1b);print(spis1)
[111, (5-9j), 'New item', 'Меня зовут: \n Кузьменко Е.А.']
# Другие методы
>>> spis1.insert(3,'Новый объект');spis1 #Вставляет объект на указанную позицию
[111, (5-9j), 'New item', 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.']
>>> spis1.remove('New item');spis1 #Удаляет конкретный объект
[111, (5-9j), 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.']
>>> spis2=['aa',123,'bb'];spis2
['aa', 123, 'bb']
>>> spis1.extend(spis2);spis1 #Добавляет объекты в конец списка
[111, (5-9j), 'Новый объект', 'Меня зовут: \n Кузьменко Е.А.', 'aa', 123, 'bb']
>>> spis2.clear();spis2 #Очищает список
[]
>>> spis3=[-9,2,5,0,10,-11];spis3.sort();spis3 #Сортирует по возрастанию
[-11, -9, 0, 2, 5, 10]
>>> spis3.sort(reverse=True);spis3 #Сортирует по убыванию
[10, 5, 2, 0, -9, -11]
>>> spis1.reverse();spis1 #Выписывает список в обратном порядке
['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111]
>>> copy1=spis1.copy();copy2=spis3.copy();print(copy1,copy2) #Копирует список
['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111] [10, 5, 2, 0, -9, -11]
>>> spis4=[1,1,0,2,4,5,5,1];spis4.count(1) #Считает сколько раз конкретный элемент вошёл в список
3
>>> spis4.index(5) #Находит индекс первого вхождения "5"
5
# Вложенные списки
>>> spis2=[spis1,[4,5,6,7]];spis2
[['bb', 123, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]
>>> spis2[0][1] #Обращение к элементу первого списка(т.к. "0")
123
>>> spis2[0][1]=78;spis2;spis1
[['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]
['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111]
```
При изменении spis2[0][1], мы поменяли второй элемент в самом списке spis1, так как заданный spis2[0] и есть spis1.
```py
>>> spis0=[123, 'ice cream', False, spis2];spis0
[123, 'ice cream', False, [['bb', 78, 'aa', 'Меня зовут: \n Кузьменко Е.А.', 'Новый объект', (5-9j), 111], [4, 5, 6, 7]]]
```
## 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);kort1 #Первое появление двойки
4
>>> kort1.count(222)
1
>>> kort1[2]=90;kort1 #Нельзя изменить кортеж
Traceback (most recent call last):
File "<pyshell#207>", line 1, in <module>
kort1[2]=90;kort1
TypeError: 'tuple' object does not support item assignment
>>> kort3=(16,'boo',[1,2,"aa"],(2,"bb",2));kort3
(16, 'boo', [1, 2, 'aa'], (2, 'bb', 2))
```
## 8.3.Объект-словарь
```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]
# Создание словарей
>>> dic2={1:'mean',2:'standart deviation',3:'correlation'};dic2
{1: 'mean', 2: 'standart deviation', 3: 'correlation'}
>>> dic3={'statics':dic2,'POAS':['base','elementary','programming']};dic3
{'statics': {1: 'mean', 2: 'standart deviation', 3: 'correlation'}, 'POAS': ['base', 'elementary', 'programming']}
>>> 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 Кузьменко Е.А.'}
>>> kort11=(2,6,'sa',True,False,12,1);kort11
(2, 6, 'sa', True, False, 12, 1)
>>> spis11=[2,'oo','bb',3,5];spis11
[2, 'oo', 'bb', 3, 5]
>>> dic11=dict(zip(kort11,spis11));dic11
{2: 2, 6: 'oo', 'sa': 'bb', True: 3, False: 5}
```
В данном случае кортеж - 7 элементов, список - 5 элементов. Однако создаваемый словарь подстроится под наименьшее количество элементов, пока в обоих перечнях присутствуют пары без повторов.
```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
{'двигатель', 'микропроцессор', 'реле', 'линия связи', 'датчик'}
>>> mnoz1.remove('линия связи');mnoz1
{'двигатель', 'микропроцессор', 'реле', 'датчик'}
>>> mnoz2={4.12,'rr',True,True,2,2,3.2,'rr','rr',(1,2)};mnoz2
{True, 2, 3.2, (1, 2), 4.12, 'rr'}
>>> len(mnoz2)
6
>>> 2 in mnoz2
True
>>> 3 in mnoz2
False
>>> mnoz2.add('oo');mnoz2
{True, 2, 3.2, (1, 2), 4.12, 'oo', 'rr'}
>>> mnoz2.remove(3.2);mnoz2
{True, 2, (1, 2), 4.12, 'oo', 'rr'}
```
## 9.Завершение работы со средой.

@ -0,0 +1,85 @@
## Общее контрольное задание по Теме 2
Кузьменко Елена, А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия
1.Создать переменную с именем familia и со значением - символьной строкой – своей фамили-ей в латинской транскрипции.
2.Создать переменную со значением, совпадающим с первой буквой из familia.
3.Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
4.Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
5.Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
6.Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
7.Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
8.Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные перемен-ные, соответствующие этим типам.
## Решение
## 1.Создание переменной
```py
>>> familia='Kuzmenko';familia
'Kuzmenko'
```
## 2.Переменная с первой буквой из familia
```py
>>> first=familia[0];first
'K'
```
## 3.Переменная со списком всех ключевых слов языка
```py
>>> import keyword
>>> dir(keyword)
['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'iskeyword', 'issoftkeyword', 'kwlist', 'softkwlist']
>>> sp_kw=keyword.kwlist;sp_kw
['False', 'None', 'True', '__peg_parser__', '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']
```
## 4.Удаление значения из списка
```py
>>> sp_kw.remove('nonlocal');sp_kw
['False', 'None', 'True', '__peg_parser__', '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']
```
## 5.Создание кортежа с именами
```py
>>> kort_nam=('Елена','Анастасия','Варвара','Елизавета');kort_nam;type(kort_nam)
('Елена', 'Анастасия', 'Варвара', 'Елизавета')
<class 'tuple'>
```
## 6.Добавление имён в кортеж
```py
>>> kort_nam=kort_nam+('Алёна','Вера');kort_nam
('Елена', 'Анастасия', 'Варвара', 'Елизавета', 'Алёна', 'Вера')
```
## 7.Присутствие имени
```py
>>> kort_nam.count('Дима')
0
```
## 8.Создание словаря
```py
>>> dist_bas={'Строка':[familia,first],'Список': sp_kw, 'Кортеж': kort_nam};dist_bas
{'Строка': ['Kuzmenko', 'K'], 'Список': ['False', 'None', 'True', '__peg_parser__', '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'], 'Кортеж': ('Елена', 'Анастасия', 'Варвара', 'Елизавета', 'Алёна', 'Вера')}
```

@ -0,0 +1,20 @@
# Общее контрольное задание по Теме 2
Кузьменко Елена, А-02-23
## Задание
7. Напишите инструкцию создания множества с 5 русскоязычными названиями фруктов.
Напишите инструкцию проверки вхождения фрукта «яблоко» в составе множества.
## Решение
```py
>>>fruits={'яблоко','апельсин','апельсин','киви','яблоко','ананас','яблоко','мандарин'}; fruits
{'яблоко', 'апельсин', 'ананас', 'киви', 'мандарин'}
>>>'яблоко' in fruits
True
>>>len(fruits)
5
```

@ -0,0 +1,489 @@
#Протокол по Теме3
#2
#2.1
>>> logiz1=bool(56); logiz1
True
>>> logiz2=bool(0); logiz2
False
>>> logiz3=bool("Beta");logiz3
True
>>> logiz4=bool("");logiz4
False
#2.2
>>> 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");tt5
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
tt5=int("98.76");tt5
ValueError: invalid literal for int() with base 10: '98.76'
>>> tt5=int(float("98.76"));tt5
98
#2.3
>>> hh=123
>>> dv1=bin(hh);dv1
'0b1111011'
>>> vos1=oct(hh);vos1
'0o173'
>>> shs1=hex(hh);shs1
'0x7b'
>>> pr_dv1=int(dv1);pr_dv1
>>> pr_dv1=int(dv1,2);pr_dv1
123
>>> pr_vos1=int(vos1,8);pr_vos1
123
>>> pr_shs1=int(shs1,16);pr_shs1
123
#3
#3.1
>>> 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
>>> 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]
#3.3
>>> 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 strk5,kort8
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'pr_dv1', 'pr_shs1', 'pr_vos1', 'shs1', 'spis1', 'spis2', 'spis3', 'spis4', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'tt5', 'vos1']
>>> dir(strk5)
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
dir(strk5)
NameError: name 'strk5' is not defined
>>> dir(kort8)
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
dir(kort8)
NameError: name 'kort8' is not defined
>>> name="Kuzmenko E.A.";name
'Kuzmenko E.A.'
>>> name_list=list(name);name_list
['K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.']
>>> name_kort=tuple(name_list);name_kort
('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')
>>> name_str=str(name_kort);name_str
"('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')"
>>> print(name_str)
('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')
#4
#4.1
>>> 12+7+90
109
>>> 5.689e-1 - 0.456
0.11289999999999994
>>> 23.6+54
77.6
>>> 14-56.7+89
46.3
#4.2
>>> -6.7*12
-80.4
#4.3
>>> -234.5/6
-39.083333333333336
>>> a=178/45;type(a)
<class 'float'>
>>> a
3.9555555555555557
#4.4
>>> b=178//45;b;type(b)
3
<class 'int'>
>>> c=-24.6//12.1;c;type(c)
-3.0
<class 'float'>
>>> b1=178//12.1;b1;type(b1)
14.0 #без округления 14.710743801652892
<class 'float'>
>>> c1=-24.6//45;c1;type(c1)
-1.0 #без округления -0.5466666666666667
<class 'float'>
>>> c2=-24.6/45;c2
-0.5466666666666667
#4.5
>>> A=148/33;A1=148%33;A,A1;type(A),type(A1)
(4.484848484848484, 16)
(<class 'float'>, <class 'int'>)
>>> B=12.6/3.8;B1=12.6%3.8;B;B1;type(B);type(B1)
3.3157894736842106
1.2000000000000002
<class 'float'>
<class 'float'>
>>> C=148/3.8;C1=148%3.8;C;C1;type(C);type(C1)
38.94736842105263
3.6000000000000068
<class 'float'>
<class 'float'>
>>> D=12.6/33;D1=12.6%33;D;D1;type(D);type(D1)
0.38181818181818183
12.6
<class 'float'>
<class 'float'>
#4.6
>>> 14**3
2744
>>> e=2.7**3.6;e;type(e)
35.719843790663525
<class 'float'>
>>> 14**3.6
13367.830445904418
>>> e1=2.7**3;e1;type(e1)
19.683000000000003
<class 'float'>
>>> z=12+13j;z1=9-3j;z;z1;type(z);type(z1)
(12+13j)
(9-3j)
<class 'complex'>
<class 'complex'>
>>> z+z1
(21+10j)
>>> z-z1
(3+16j)
>>> z*z1
(147+81j)
>>> z/z1
(0.7666666666666667+1.7j)
>>> z//z1
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
z//z1
TypeError: can't take floor of complex number.
>>> z%z1
Traceback (most recent call last):
File "<pyshell#81>", line 1, in <module>
z%z1
TypeError: can't mod complex numbers.
>>> z**z1
(748985013590.2666-1875851778010.0532j)
#5
#5.1
>>> dv1=9;dv1
9
>>> dv2=~dv1;dv2
-10
>>> dv11=3;dv22=~dv11;dv22
-4
#5.2
>>> 7&9 #111 и 1001 = 0001
1
>>> 7&8 #111 и 1000 = 0000
0
>>> 3&7 #0011(бинарное) и 0111(бинарное) = 0011, то есть 3(десятичное)
3
#5.3
>>> 7|9 #0111 или 1001
15 #1111
>>> 7|8 #111 или 1000
15 #1111
>>> 14|5 #1110 или 0101
15 #1111
#5.4
>>> 14^5 #1110 искл.или 0101
11 #1011
#5.5
>>> h=14;h;g=h<<2;bin(h);g;bin(g)
14
'0b1110'
56
'0b111000'
>>> g1=h>>1;g1;bin(g1)
7
'0b111'
>>> g2=h>>2;g2;bin(g2)
3
'0b11'
>>> h1=75;h1;bin(75)
75
'0b1001011'
>>> j1=h1>>4;j1;bin(j1)
4
'0b100'
>>> j2=h1<<-3;j2;bin(j2)
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
j2=h1<<-3;j2;bin(j2)
ValueError: negative shift count
>>> j2=h1<<3;j2;bin(j2)
600
'0b1001011000'
#6
#6.1
>>> 'Система '+'регулирования'
'Система регулирования'
>>> ['abc','de','fg']+['hi','jkl']
['abc', 'de', 'fg', 'hi', 'jkl']
>>> ('abc','de','fg')+('hi','jkl')
('abc', 'de', 'fg', 'hi', 'jkl')
#6.2
>>> 'ля-'*5
'ля-ля-ля-ля-ля-'
>>> ['ку','-']*3
['ку', '-', 'ку', '-', 'ку', '-']
>>> ('кис','-')*4
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
>>> signal1=[0]*3+[1]*99; signal1
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> signal2=(0,)*3+(1,)*5+(0,)*7;signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
#6.3
>>> stroka='Система автоматического управления'
>>> 'автомат' in stroka
True
>>> 'ку' in ['ку','-']*3
True
>>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
False
#6.4
>>> stroka='Температура = %g %s %g';stroka
'Температура = %g %s %g'
>>> stroka % (16,' меньше ',25);stroka
'Температура = 16 меньше 25'
'Температура = %g %s %g'
>>> stroka1='Температура = %(zn1)g %(sravn)s %(zn2)g';stroka1
'Температура = %(zn1)g %(sravn)s %(zn2)g'
>>> stroka1 % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
#7
#7.1
>>> zz=-12;zz
-12
#7.2
>>> zz=-12;zz
-12
>>> zz+=5;zz
-7
>>> zz-=3;zz
-10
>>> stroka2='Система'; stroka2
'Система'
>>> stroka2+=' регулирования';stroka2
'Система регулирования'
#7.3
>>> zz;zz/=2;zz
-10
-5.0
>>> zz*=5;zz
-25.0
>>> stroka2*=3;stroka2
'Система регулированияСистема регулированияСистема регулирования'
#7.4
>>> zz;zz//=4;zz
-25.0
-7.0
>>> zz**=2;zz
49.0
>>> zz%=5;zz
4.0
#8
#8.1
>>> w=15;v=-10;w;v
15
-10
>>> w==v
False
>>> w!=v
True
>>> w<v
False
>>> w>v
True
>>> w>=v
True
>>> w<=v
False
>>> w1='abcd';v1='aloaloalo'
>>> w1==v1
False
>>> w1>v1
False
>>> w1<v1
True
#8.2
>>> mnoz1={'pen','book','pen','iPhone','table','book'};mnoz1
{'iPhone', 'pen', 'book', 'table'}
>>> 'book' in mnoz1
True
>>> 'cap' in mnoz1
False
>>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45};dic1
{'Saratov': 145, 'Orel': 56, 'Vologda': 45}
>>> 'Vologda' in dic1
True
>>> 'Pskov' in dic1
False
>>> dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']};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
>>> a=17;b=-6
>>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
>>> not (a==b) or ('pen' in mnoz1) and ('Depart' in dct1)
True
>>> not ('pen' in mnoz1) or not (a<b) and ('Depart' in dct1)
True
#8.4
>>> w=v=10
>>> w;v
10
10
>>> w is v
True
>>> w1=['A','B'];v1=['A','B']
>>> w1 is v1
False
#9
>>> stroka='Микропроцессорная система управления';stroka
'Микропроцессорная система управления'
>>> dir(stroka)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__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
>>> stroka.find('пр')
5
>>> stroka.count('с')
4
>>> stroka.replace('у','автоматического у')
'Микропроцессорная система автоматического управления'
>>> spis22=stroka.split(' ');spis22
['Микропроцессорная', 'система', 'управления']
>>> stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
>>> stroka3=" ".join(spis22);stroka3
'Микропроцессорная система управления'
>>> stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
>>> stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
>>> strk1='Момент времени {}, значение = {}';strk1
'Момент времени {}, значение = {}'
>>> strk1.format(1,89.7)
'Момент времени 1, значение = 89.7'
>>> strk2='Момент времени {1}, значение = {0}:{2}';strk2
'Момент времени {1}, значение = {0}:{2}'
>>> strk2.format(36.7,2,'норма!')
'Момент времени 2, значение = 36.7:норма!'
>>> strk3='Момент времени {num}, значение = {znch}';strk3
'Момент времени {num}, значение = {znch}'
>>> strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
#9.2
>>> spsk=[123,'lala',False,'abc','12'];spsk
[123, 'lala', False, 'abc', '12']
>>> spsk.pop(2);spsk
False
[123, 'lala', 'abc', '12']
>>> spsk.append('c');spsk
[123, 'lala', 'abc', '12', 'c']
>>> spsk.insert(2,'a');spsk
[123, 'lala', 'a', 'abc', '12', 'c']
>>> spsk.count('a');spsk
1
[123, 'lala', 'a', 'abc', '12', 'c']
#9.3
>>> k=(3+3j,'oo',1,'324','hello');k
((3+3j), 'oo', 1, '324', 'hello')
>>> k.count(3)
0
>>> k.count(1)
1
>>> k.index(1)
2
>>> len(k)
5
>>> k[0]
(3+3j)
#9.4
>>> sl={'a':1,'b':2,'c':3,'d':4,'e':5};sl
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
>>> sl.keys()
dict_keys(['a', 'b', 'c', 'd', 'e'])
>>> sl.values()
dict_values([1, 2, 3, 4, 5])
>>> sl.get('a')
1
>>> sl.update({'e':150});sl
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 150}
>>> sl.pop('b');sl
2
{'a': 1, 'c': 3, 'd': 4, 'e': 150}
>>> sl.clear();sl
{}
>>> mn={1,11,'lo',11,'mnoz','123','mnoz'};mn
{'123', 1, 'mnoz', 11, 'lo'}
>>> mn.add(2);mn
{'123', 1, 2, 'mnoz', 11, 'lo'}
>>> mn.remove(1);mn
{'123', 2, 'mnoz', 11, 'lo'}
>>> mn.pop();mn #удаляет случайный элемент
'123'
{2, 'mnoz', 11, 'lo'}
>>> mn.clear();mn
set()
#10 Завершение работы со средой

@ -0,0 +1,670 @@
# Отчёт по Теме 3
Кузьменко Елена, А-02-23
## 1. Запустили интерактивную оболочку IDLE.
## 2. Преобразование простых базовых типов объектов.
### 2.1. Логический тип.
```py
>>> logiz1=bool(56); logiz1
True
>>> logiz2=bool(0); logiz2
False
>>> logiz3=bool("Beta");logiz3
True
>>> logiz4=bool("");logiz4
False
```
### 2.2. Целое десятичное число с заданной системой счисления.
```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");tt5 #Читает строку как целое число(ошибка)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
tt5=int("98.76");tt5
ValueError: invalid literal for int() with base 10: '98.76'
```
Нельзя напрямую преобразовать строку с дробным числом в целое число, так как int() не принимает строки с точкой.
```py
>>> tt5=int(float("98.76"));tt5
98
```
### 2.3. Другие системы счисления.
```py
>>> hh=123
>>> dv1=bin(hh);dv1
'0b1111011'
>>> vos1=oct(hh);vos1
'0o173'
>>> shs1=hex(hh);shs1
'0x7b'
>>> pr_dv1=int(dv1);pr_dv1
```
Проверка:
```py
>>> pr_dv1=int(dv1,2);pr_dv1
123
>>> pr_vos1=int(vos1,8);pr_vos1
123
>>> pr_shs1=int(shs1,16);pr_shs1
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']
```
В список попали только ключи словаря. Сделаем список со значениями:
```py
>>> spis4=list({"A":1,"B":2,"C":9}.values());spis4
[1, 2, 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
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'pr_dv1', 'pr_shs1', 'pr_vos1', 'shs1', 'spis1', 'spis2', 'spis3', 'spis4', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'tt5', 'vos1']
>>> dir(strk5)
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
dir(strk5)
NameError: name 'strk5' is not defined
>>> dir(kort8)
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
dir(kort8)
NameError: name 'kort8' is not defined
```
```py
>>> name="Kuzmenko E.A.";name
'Kuzmenko E.A.'
>>> name_list=list(name);name_list
['K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.']
>>> name_kort=tuple(name_list);name_kort
('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')
>>> name_str=str(name_kort);name_str
"('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')"
>>> print(name_str)
('K', 'u', 'z', 'm', 'e', 'n', 'k', 'o', ' ', 'E', '.', 'A', '.')
```
## 4. Работа с арифметическими операциями
### 4.1. Сложение и вычитание
```py
>>> 12+7+90
109
>>> 5.689e-1 - 0.456
0.11289999999999994
>>> 23.6+54
77.6
>>> 14-56.7+89
46.3
```
### 4.2. Умножение
```py
>>> -6.7*12
-80.4
```
### 4.3. Деление
```py
>>> -234.5/6
-39.083333333333336
>>> a=178/45;type(a)
<class 'float'>
>>> a
3.9555555555555557
```
### 4.4. Деление с округлением
```py
>>> b=178//45;b;type(b)
3
<class 'int'>
>>> c=-24.6//12.1;c;type(c)
-3.0
<class 'float'>
>>> b1=178//12.1;b1;type(b1)
14.0 #без округления 14.710743801652892
<class 'float'>
>>> c1=-24.6//45;c1;type(c1)
-1.0 #без округления -0.5466666666666667
<class 'float'>
>>> c2=-24.6/45;c2
-0.5466666666666667
```
### 4.5. Остаток от деления
```py
>>> A=148/33;A1=148%33;A,A1;type(A),type(A1)
(4.484848484848484, 16)
(<class 'float'>, <class 'int'>)
>>> B=12.6/3.8;B1=12.6%3.8;B;B1;type(B);type(B1)
3.3157894736842106
1.2000000000000002
<class 'float'>
<class 'float'>
>>> C=148/3.8;C1=148%3.8;C;C1;type(C);type(C1)
38.94736842105263
3.6000000000000068
<class 'float'>
<class 'float'>
>>> D=12.6/33;D1=12.6%33;D;D1;type(D);type(D1)
0.38181818181818183
12.6
<class 'float'>
<class 'float'>
```
### 4.6. Степень числа
```py
>>> 14**3
2744
>>> e=2.7**3.6;e;type(e)
35.719843790663525
<class 'float'>
>>> 14**3.6
13367.830445904418
>>> e1=2.7**3;e1;type(e1)
19.683000000000003
<class 'float'>
```
Операции с комплексными числами:
```py
>>> z=12+13j;z1=9-3j;z;z1;type(z);type(z1)
(12+13j)
(9-3j)
<class 'complex'>
<class 'complex'>
>>> z+z1
(21+10j)
>>> z-z1
(3+16j)
>>> z*z1
(147+81j)
>>> z/z1
(0.7666666666666667+1.7j)
>>> z//z1
Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
z//z1
TypeError: can't take floor of complex number.
>>> z%z1
Traceback (most recent call last):
File "<pyshell#81>", line 1, in <module>
z%z1
TypeError: can't mod complex numbers.
>>> z**z1
(748985013590.2666-1875851778010.0532j)
```
Комплексные числа не поддерживают операции // и % потому что они не упорядочены, то есть у них нет понятия больше или меньше, необходимого для округления и вычисления остатка.
## 5. Двоичные представления целых чисел
### 5.1. Инверсия
```py
>>> dv1=9;dv1
9
>>> dv2=~dv1;dv2
-10
>>> dv11=3;dv22=~dv11;dv22
-4
```
### 5.2. "И"
```py
>>> 7&9 #111 и 1001 = 0001
1
>>> 7&8 #111 и 1000 = 0000
0
>>> 3&7 #0011(бинарное) и 0111(бинарное) = 0011, то есть 3(десятичное)
3
```
### 5.3. "ИЛИ"
```py
>>> 7|9 #0111 или 1001
15 #1111
>>> 7|8 #111 или 1000
15 #1111
>>> 14|5 #1110 или 0101
15 #1111
```
### 5.4. Исключающее "ИЛИ"
1 если биты разные, 0 если одинаковые:
```py
>>> 14^5 #1110 искл.или 0101
11 #1011
```
### 5.5. Сдвиг двоичного числа
```py
>>> h=14;h;g=h<<2;bin(h);g;bin(g)
14
'0b1110'
56
'0b111000'
>>> g1=h>>1;g1;bin(g1)
7
'0b111'
>>> g2=h>>2;g2;bin(g2)
3
'0b11'
>>> h1=75;h1;bin(75)
75
'0b1001011'
>>> j1=h1>>4;j1;bin(j1)
4
'0b100'
>>> j2=h1<<3;j2;bin(j2)
600
'0b1001011000'
```
## 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
'ля-ля-ля-ля-ля-'
>>> ['ку','-']*3
['ку', '-', 'ку', '-', 'ку', '-']
>>> ('кис','-')*4
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
>>> signal1=[0]*3+[1]*99; signal1
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>> signal2=(0,)*3+(1,)*5+(0,)*7;signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```
### 6.3. Наличие заданного подстроки и контекста
```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);stroka
'Температура = 16 меньше 25'
'Температура = %g %s %g'
>>> stroka1='Температура = %(zn1)g %(sravn)s %(zn2)g';stroka1
'Температура = %(zn1)g %(sravn)s %(zn2)g'
>>> stroka1 % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
```
## 7. Присваивание
### 7.1. Обычное
```py
>>> zz=-12;zz
-12
```
### 7.2 Увеличение и уменьшение значения
```py
>>> zz=-12;zz
-12
>>> zz+=5;zz
-7
>>> zz-=3;zz
-10
>>> stroka2='Система'; stroka2
'Система'
>>> stroka2+=' регулирования';stroka2
'Система регулирования'
```
### 7.3. Умножение и деление значения
```py
>>> zz;zz/=2;zz
-10
-5.0
>>> zz*=5;zz
-25.0
>>> stroka2*=3;stroka2
'Система регулированияСистема регулированияСистема регулирования'
```
### 7.4. Деление с округлением, остаток, степень
```py
>>> zz;zz//=4;zz
-25.0
-7.0
>>> zz**=2;zz
49.0
>>> zz%=5;zz
4.0
```
### 7.5. Множественное присваивание
```py
>>> n1,n2,v3=(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:1,-3:2,'all':3};n1;n2;n3
11
-3
'all'
>>> n1,n2,n3={11,-3,'all',-3,11};n1;n2;n3
11
'all'
-3
```
## 8. Логические операции
### 8.1. Сравнение
```py
>>> w=15;v=-10;w;v
15
-10
>>> w==v
False
>>> w!=v
True
>>> w<v
False
>>> w>v
True
>>> w>=v
True
>>> w<=v
False
>>> w1='abcd';v1='aloaloalo'
>>> w1==v1
False
>>> w1>v1
False
>>> w1<v1
True
```
### 8.2. Наличие элемента
```py
>>> mnoz1={'pen','book','pen','iPhone','table','book'};mnoz1
{'iPhone', 'pen', 'book', 'table'}
>>> 'book' in mnoz1
True
>>> 'cap' in mnoz1
False
>>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45};dic1
{'Saratov': 145, 'Orel': 56, 'Vologda': 45}
>>> 'Vologda' in dic1
True
>>> 'Pskov' in dic1
False
>>> dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']};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
>>> not (a==b) or ('pen' in mnoz1) and ('Depart' in dct1)
True
>>> not ('pen' in mnoz1) or not (a<b) and ('Depart' in dct1)
True
```
### 8.4. Ссылки переменных на тот же объект
```py
>>> w=v=10
>>> w;v
10
10
>>> w is v
True
>>> w1=['A','B'];v1=['A','B']
>>> w1 is v1
False
```
В первом случае w и v ссылаются на один и тот же объект, поэтому проверка выдаёт True. Для второго случая создаётся два разных списка, каждый из которых занимают свою ячейку памяти(по отдельности друг от друга и без ссылок), поэтому как "разные объекты" результат - False.
## 9. Методы для операций с объектами
```py
>>> stroka='Микропроцессорная система управления';stroka
'Микропроцессорная система управления'
>>> dir(stroka)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
```
### 9.1. Работа со строками
```py
>>> stroka.find('пр')
5
>>> stroka.count('с')
4
>>> stroka.replace('у','автоматического у')
'Микропроцессорная система автоматического управления'
>>> spis22=stroka.split(' ');spis22
['Микропроцессорная', 'система', 'управления']
>>> stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
>>> stroka3=" ".join(spis22);stroka3
'Микропроцессорная система управления'
>>> stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
>>> stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
```
Метод format:
```py
>>> strk1='Момент времени {}, значение = {}';strk1
'Момент времени {}, значение = {}'
>>> strk1.format(1,89.7)
'Момент времени 1, значение = 89.7'
>>> strk2='Момент времени {1}, значение = {0}:{2}';strk2
'Момент времени {1}, значение = {0}:{2}'
>>> strk2.format(36.7,2,'норма!')
'Момент времени 2, значение = 36.7:норма!'
>>> strk3='Момент времени {num}, значение = {znch}';strk3
'Момент времени {num}, значение = {znch}'
>>> strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
```
### 9.2. Работа со списками
```py
>>> spsk=[123,'lala',False,'abc','12'];spsk
[123, 'lala', False, 'abc', '12']
>>> 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);spsk
False
[123, 'lala', 'abc', '12']
>>> spsk.append('c');spsk
[123, 'lala', 'abc', '12', 'c']
>>> spsk.insert(2,'a');spsk
[123, 'lala', 'a', 'abc', '12', 'c']
>>> spsk.count('a');spsk
1
[123, 'lala', 'a', 'abc', '12', 'c']
```
### 9.3. Кортеж
```py
>>> k=(3+3j,'oo',1,'324','hello');k
((3+3j), 'oo', 1, '324', 'hello')
>>> dir(k)
['__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']
>>> k.count(3)
0
>>> k.count(1)
1
>>> k.index(1)
2
>>> len(k)
5
>>> k[0]
(3+3j)
```
### 9.4. Словарь и множество
Словарь
```py
>>> sl={'a':1,'b':2,'c':3,'d':4,'e':5};sl
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
>>> dir(sl)
['__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']
>>> sl.keys()
dict_keys(['a', 'b', 'c', 'd', 'e'])
>>> sl.values()
dict_values([1, 2, 3, 4, 5])
>>> sl.get('a')
1
>>> sl.update({'e':150});sl
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 150}
>>> sl.pop('b');sl
2
{'a': 1, 'c': 3, 'd': 4, 'e': 150}
>>> sl.clear();sl
{}
```
Множество
```py
>>> mn={1,11,'lo',11,'mnoz','123','mnoz'};mn
>>> dir(mn)
['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
{'123', 1, 'mnoz', 11, 'lo'}
>>> mn.add(2);mn
{'123', 1, 2, 'mnoz', 11, 'lo'}
>>> mn.remove(1);mn
{'123', 2, 'mnoz', 11, 'lo'}
>>> mn.pop();mn #удаляет случайный элемент
'123'
{2, 'mnoz', 11, 'lo'}
>>> mn.clear();mn
set()
```
## 10. Сеанс работы с IDLE закончен

@ -0,0 +1,79 @@
## Общее контрольное задание по Теме 3
Кузьменко Елена, А-02-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) Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список.
## Решение
### 1)Преобразовать восьмеричное значение 45 в целое число.
```py
>>> vs=int('45',8);vs
37
```
### 2)Создание объекта-словаря D
```py
>>> D={"усиление":23, "запаздывание":12, "постоянная времени":78};D
{'усиление': 23, 'запаздывание': 12, 'постоянная времени': 78}
>>> k_list=list(D.keys());v_list=list(D.values());k_list;v_list
['усиление', 'запаздывание', 'постоянная времени']
[23, 12, 78]
```
### 3)Работа с выражение №1
```py
>>> a=(1768//24.8%3)**2.4;a
5.278031643091577
```
### 4)Работа с выражение №2
```py
>>> b=~((13&27)^14)<<2;b
-32
```
### 5)Создание списка с 4 одинаковыми элементами
```py
>>> sp=['колебат']*4;sp
['колебат', 'колебат', 'колебат', 'колебат']
>>> 'аткол' in (sp[1]+sp[2])
True
```
### 6)Список методов
```py
>>> dir(D)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__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();D.values()
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
dict_values([23, 12, 78])
```
### 7) Создание объекта-символьная строка
```py
>>> t="Создать объект - символьную строку с текстом данного предложения.";t
'Создать объект - символьную строку с текстом данного предложения.'
>>> w=t.split();w
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
>>> w[w.index('-')]=',';w
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
>>> w.remove('данного');w
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.']
```

@ -0,0 +1,75 @@
# Индивидуальное контрольное задание по Модулю 1
Кузьменко Елена, А-02-23, Вариант 11
## Задание
1) Для чего предназначено предложение "Окно (Window)" главного меню?
2) Создайте объект-кортеж с 5 произвольными двоичными элементами. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта.
3) Напишите инструкцию создания нового кортежа, в который включите два последних элемента ранее созданного кортежа, и два элемента - символы "a" и "b". Отобразите созданный объект на экране.
4) Преобразуйте кортеж в список. Вставьте в качестве второго элемента списка значение "Автоматизированная система". Отобразите полученный объект. Напишите инструкцию, создающую символьную строку со значением, равным символам из вставленного элемента, начиная с 19-го.
5) Напишите инструкции, обеспечивающие подсчет суммы числовых элементов кортежа. С использованием формата отобразите результат по шаблону: "Сумма элементов=:".
## Решение
### 1)Предназначения "Окна(Windows)" главного меню
"Window" предназначен для быстрого переключения между открытыми окнами среды. Например, это удобно использовать, если наша работа требует несколько текстовых редакторов, разбросанных по разным файлам, тогда по названию можно быстро переключиться на нужный.
### 2)Объект-кортеж
```py
>>> n1=bin(2); n2=bin(15); n3=bin(12); n4=bin(43); n5=bin(95)
>>> n1; n2; n3; n4; n5
'0b10'
'0b1111'
'0b1100'
'0b101011'
'0b1011111'
>>> type(n1)
<class 'str'> #str, а не bin. В кортеж добавим двоичные элементы(не строковые)
>>> k=(0b10,0b1111,0b1100,0b101011,0b1011111); k #Кортеж способен выполнять действия с числами. В данном случае он bin преобразует в int
(2, 15, 12, 43, 95)
>>> type(k); dir(k)
<class 'tuple'>
['__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']
```
### 3)Новый кортеж
```py
>>> new_k=k[-2:]+('a','b'); new_k
(43, 95, 'a', 'b')
```
### 4)Преобразование в список
```py
l=list(new_k); l
[43, 95, 'a', 'b']
l.insert(1,'Автоматизированная система') # 1 - второй элемент
l
[43, 'Автоматизированная система', 95, 'a', 'b']
new_str=l[1][18:]; new_str # [1] - второй элемент списка, [18:] - начиная с 19 элемента
' система'
```
### 5)Подсчет суммы кортежа
```py
#Так как я знаю, что последние два элемента НЕ числа(они мешают применить инструкцию sum), с помощью среза я избавлюсь от строк для подсчета числовых элементов кортежа(числ эл. - все, за исключением последних двух).
>>> sum1=sum(new_k[:2]); sum1 # 43+95
138
#Альтернативное решение можно представить с циклом for и if(необходимо, если неизвество на каких местах строки и числа), однако данная тема ещё не была пройдена. В рамках данного задания известно под какими индеками находятся те или иные элементы.
>>> itog="Сумма элементов=: {}"; itog
'Сумма элементов=: {}'
>>> itog.format(sum1)
'Сумма элементов=: 138'
```

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

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

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

После

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

@ -0,0 +1,307 @@
# Отчёт по Теме 4
Кузьменко Елена, А-02-23
## 1. Запустили интерактивную оболочку IDLE.
## 2.Стандартные функции.
### 2.1.Округление числа с заданной точностью.
```py
>>> a = round(123.456,1); a; type(a)
123.5
<class 'float'>
>>> a1 = round(123.456,0); a1; type(a1)
123.0
<class 'float'>
>>> a2 = round(123.456); a2; type(a2)
123
<class 'int'>
```
### 2.2. Последовательные целые числа.
```py
>>> gg = range(76,123,9); gg; type(gg) #От 76 до 123 с шагом 9
range(76, 123, 9)
<class 'range'>
>>> list(gg)
[76, 85, 94, 103, 112, 121]
>>> gg1 = range(23); gg1 #Создаёт последовательность от 0 до 23 с шагом 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.Общий объект.
```py
>>> qq = ["Кузьменко", "Беженарь", "Добровольска", "Криви"]; qq
['Кузьменко', 'Беженарь', 'Добровольска', 'Криви']
>>> ff = zip(gg,qq); ff; type(ff)
<zip object at 0x0000014F96720F40>
<class 'zip'>
>>> ff1 = tuple(ff); ff1
((76, 'Кузьменко'), (85, 'Беженарь'), (94, 'Добровольска'), (103, 'Криви'))
>>> ff1[0]
(76, 'Кузьменко')
>>> tuple(ff)
((76, 'Кузьменко'), (85, 'Беженарь'), (94, 'Добровольска'), (103, 'Криви'))
>>> ff
<zip object at 0x0000014F94622440>
>>> ff[0]
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
ff[0]
TypeError: 'zip' object is not subscriptable
```
### 2.4. Функция eval().
```py
>>> fff = float(input('коэффициент усиления=')); dan = eval('5*fff-156')
коэффициент усиления=32
>>> dan; type(dan)
4.0
<class 'float'>
```
### 2.5. Функция exec().
```py
>>> exec(input('введите инструкции:'))
введите инструкции:perem = -123.456; gg = round(abs(perem)+98,3)
>>> gg
221.456
```
eval() - возвращает результат;
exec() - выполняет код без возврата значения.
### 2.6. Другие функции.
```py
>>> abs(-5)
5
>>> pow(2,3)
8
>>> max(-1,5,3)
5
>>> min(-1,5,3)
-1
>>> sum([1,2,3])
6
>>> divmod(10,3) # частное и остаток от деления
(3, 1)
>>> len("sdjalad")
7
>>> s=map(str,[1,2,3]); s #Применяет функцию к каждому элементу итерируемого объекта
<map object at 0x0000014F967EFDF0>
>>> list(s)
['1', '2', '3']
```
## 3.Функции стандартного модулю math
```py
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', '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', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
>>> help(math.factorial)
Help on built-in function factorial in module math:
factorial(x, /)
Find x!.
Raise a ValueError if x is negative or non-integral.
>>> math.factorial(5)
120
>>> math.sin(math.pi)
1.2246467991473532e-16
>>> math.acos(0.5)
1.0471975511965979
>>> math.degrees(math.pi)
180.0
>>> math.radians(180) # градусы в радианы
3.141592653589793
>>> math.exp(1)
2.718281828459045
>>> math.log(10)
2.302585092994046
>>> math.log10(100)
2.0
>>> math.sqrt(16)
4.0
>>> math.ceil(4.3) # Округление вверх
5
>>> math.floor(4.8)
4
```
## 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) #фаза(угол) - arctan(b/a)
-0.4636476090008061
```
## 5.Модуль random для операций с псевдослучайными числами.
```py
>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', '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 до 1, не включая верхнюю границу
0.08881917055800503
>>> random.uniform(1,10) #равномерное распределение
8.672615135853867
>>> random.gauss(0,1) #нормальное распределение
-1.571314734927639
>>> random.randint(1,100) #случайное целое
91
>>> random.choice(['1','2','a','b'])
'b'
>>> s = [1,2,3,4,5]
>>> random.shuffle(s); s
[3, 4, 1, 2, 5]
>>> random.sample(s,3) #случайная выборка
[4, 5, 1]
>>> random.betavariate(2,5) #бета-распределение
0.22293634372615048
>>> random.gammavariate(2,1) #гамма-распределение
3.778718164367487
```
## 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(); c1
1760380211.648074
>>> c2 = time.time()-c1; c2
30.08062195777893
>>> dat=time.gmtime(); dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=13, tm_hour=18, tm_min=32, tm_sec=19, tm_wday=0, tm_yday=286, tm_isdst=0)
>>> dat.tm_mon
10
>>> dat.tm_min
32
>>> dat.tm_mday
13
>>> time.localtime()
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=13, tm_hour=21, tm_min=34, tm_sec=31, tm_wday=0, tm_yday=286, tm_isdst=0)
>>> time.asctime()
'Mon Oct 13 21:35:28 2025'
>>> time.ctime(time.time()) #секунды в строку
'Mon Oct 13 21:35:47 2025'
>>> time.sleep(2) #задержка выполнения на 2 секунды
>>> time.mktime(time.localtime()) #преобразование в секунды
1760380623.0
```
## 7.Графические функции.
```py
>>> import pylab
>>> x = list(range(-3,55,4))
>>> t = list(range(15))
>>> pylab.plot(t,x)
[<matplotlib.lines.Line2D object at 0x0000019FF7371640>]
>>> pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
>>> pylab.xlabel('время')
Text(0.5, 0, 'время')
>>> pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
>>> pylab.show()
```
![](Ris1.png)
```py
>>> X1=[12,6,8,10,7]; X2=[5,7,9,11,13]
>>> pylab.plot(X1); pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x0000019FFB0C0C40>]
[<matplotlib.lines.Line2D object at 0x0000019FFB0C0F40>]
>>> pylab.show()
```
![](Ris2.png)
```py
>>> region=['Центр','Урал','Сибирь','Юг']
>>> naselen=[65,12,23,17]
>>> pylab.pie(naselen,labels=region)
([<matplotlib.patches.Wedge object at 0x0000019FFB283E20>, <matplotlib.patches.Wedge object at 0x0000019FFB283EE0>, <matplotlib.patches.Wedge object at 0x0000019FFB2AB100>, <matplotlib.patches.Wedge object at 0x0000019FFB2AB580>], [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
>>> X0 = [1,1,2,2,2,3,3,3,4,4,5]
>>> pylab.hist(X0,5)
(array([2., 3., 3., 2., 1.]), array([1. , 1.8, 2.6, 3.4, 4.2, 5. ]), <BarContainer object of 5 artists>)
>>> pylab.show()
```
![](Ris4.png)
```py
>>> x0 = ['a','b','c']
>>> x10 = [123,321,112]
>>> pylab.bar(x0,x10)
<BarContainer object of 3 artists>
>>> pylab.show()
```
![](Ris5.png)
## 8.Модуль statistics.
```py
>>> import statistics
>>> s = [123, 49, 3, 16, 8, 10, 9]
>>> statistics.mean(s) # среднее
31.142857142857142
>>> statistics.median(s) # медиана
10
>>> statistics.stdev(s) # стандартное отклонение
43.30291973000039
>>> statistics.variance(s) # дисперсия
1875.1428571428573
>>> s1 = [123, 49, 3, 3, 3, 16, 8, 8, 10, 9]
>>> statistics.mode(s1) # мода
3
```
## 9.Завершение работы со средой.

@ -0,0 +1,80 @@
## Общее контрольное задание по Теме 4
Кузьменко Елена, А-02-23
## Задание
1)Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
2)Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
3)Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
4)Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
5)Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
6)Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
### 1.Исполнение выражения.
```py
>>> import math
>>> import cmath
>>> divmod(math.floor(round(cmath.phase( 0.2+0.8j ), 2)) * 20), 3)
(8, 2)
```
### 2.Объект с временными параметрами.
```py
>>> import time
>>> t = time.gmtime(time.time() + 3 * 3600); t
>>> time.struct_time(tm_year=2025, tm_mon=10, tm_mday=20, tm_hour=10, tm_min=36, tm_sec=20, tm_wday=0, tm_yday=293, tm_isdst=0)
>>> print('часов: ' + str(t.tm_hour) + '\nминут: ' + str(t.tm_min))
>>> часов: 10
>>> минут: 36
```
### 3.Список.Случайная выборка.
```py
>>> import random
>>> days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
>>> v = random.sample(days,3); v
['Понедельник', 'Четверг', 'Пятница']
```
### 4.Случайный выбор чисел из последовательности.
```py
>>> r1 = random.choice(list(range(14, 32, 3))); r1
17
```
### 5.Нормальное распределение.Список с латинскими буквами.
```py
>>> n = round(random.gauss(15,4)); n
10
>>> alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> l = random.sample(alphabet * n, n); l
['K', 'I', 'B', 'I', 'L', 'D', 'W', 'O', 'Q', 'X']
```
### 6.Временной интервал в минутах.
```py
>>> t2 = time.gmtime(time.time() + 3 * 3600); t2
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=20, tm_hour=10, tm_min=37, tm_sec=53, tm_wday=0, tm_yday=293, tm_isdst=0)
>>> t_2 = (t2.tm_hour*3600+t2.tm_min*60+t2.tm_sec); t_2
38273
>>> t_1 = (t.tm_hour*3600+t.tm_min*60+t.tm_sec); t_1
38180
>>> t_3 = math.floor((t_2 - t_1)/60); t_3
1
```

@ -0,0 +1,45 @@
# Индивидуальные контрольные задания по Теме 4
Кузьменко Елена, А-02-23
## Задание Вариант 6
1)Создайте переменную с календарными сведениями для текущего момента времени и выведите информацию в виде строки «Текущая дата: <день>-<месяц>-<год>».
2)Создайте объект со значением 5-2j.
3)Извлеките из него квадратный корень с записью результата в новый объект. Эту операцию выполните с использованием функции exec.
## Решение
### 1)Переменная с календарными сведениями
```py
import time
>>> t = time.localtime(); t #переменная, хранящая календарные данные
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=20, tm_hour=11, tm_min=43, tm_sec=7, tm_wday=0, tm_yday=293, tm_isdst=0)
>>> print(f"Текущая дата: {t.tm_mday}-{t.tm_mon}-{t.tm_year}")
Текущая дата: 20-10-2025
```
### 2)Создание объекта
```py
>>> a = 5-2j; a #создаваемый объект
(5-2j)
>>> type(a)
<class 'complex'>
```
### 3)Квадратный корень с результатом в новый объект(использование exec())
```py
>>> import cmath
>>> exec("a1 = cmath.sqrt(a)")
>>> a1 #новый объект
(2.27872385417085-0.4388421169022545j)
```

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

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

После

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

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

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

После

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

@ -0,0 +1,385 @@
# Отчёт по Теме 5
Кузьменко Елена, А-02-23
## 1. Запустили интерактивную оболочку IDLE.
## 2.Управляющая инструкция if.
Первая операция. Определение значения dohod:
```py
>>> porog = 5
>>> rashod1 = 6
>>> rashod2 = 4
>>> if rashod1 >= porog:
dohod = 12
elif rashod2 == porog:
dohod = 0
else:
dohod = -8
>>> dohod
12
```
Вторая операция. Определение значения dohod:
```py
>>> if rashod1 >= 3 and rashod2 ==4:
dohod = rashod1
if rashod2 == porog or rashod1 < rashod2:
dohod = porog
>>> dohod
6
```
Операция с множественным ветвлением линий потока:
```py
>>> if porog == 3:
dohod = 1
elif porog == 4:
dohod = 2
elif porog == 5:
dohod = 3
else:
dohod = 0
>>> dohod
3
```
Инструкция в одну строчку:
```py
>>> if porog >=5: rashod1 = 6; rashod2 = 0
>>> rashod1; rashod2
6
0
```
Или:
```py
>>> rashod1 = 1 if porog == 5 else 2
>>> rashod1
1
```
## 3.Управляющая инструкция for.
### 3.1.Простой цикл.
```py
>>> temperatura = 5
>>> for i in range(3,18,3):
temperatura += i
>>> temperatura
50 # 5 + цикл(3+6+9+12+15)
```
### 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]
```
Отличающаяся совокупность операций:
```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]
```
Здесь sps[:] - копия списка sps, потому кол-во элементов не увеличвается и заканчивается на последней 4-й итерации(всего 4 элемента в sps[:]).
### 3.3.Пример c созданием списка.
```py
>>> import random as rn
>>> sps5 = []
>>> for i in range(10):
sps5.append(rn.randint(1,100))
ss = sum(sps5)
if ss > 500: break
else:
print(ss)
49
85
130
195
244
307
315
396
464
467
```
### 3.5. Пример с символьной строкой.
```py
>>> stroka = 'Это - автоматизированная система'
>>> stroka1 = ""
>>> for ss in stroka:
stroka1 += " " + ss
>>> stroka1
' Э т о - а в т о м а т и з и р о в а н н а я с и с т е м а'
```
### 3.5.Конструкция list comprehension.
```py
>>> import math
>>> sps2 = [math.sin(i*math.pi/5+2) for i in range(100)] #выражение генератор
>>> sps2
[0.9092974268256817, 0.49103209793281005, -0.11479080280322804, -0.6767675184643197, -0.9802420445539634, -0.9092974268256817, -0.49103209793281016, 0.11479080280322791, 0.6767675184643196, 0.9802420445539634, 0.9092974268256818, 0.4910320979328103, -0.1147908028032278, -0.6767675184643196, -0.9802420445539632, -0.9092974268256818, -0.4910320979328104, 0.11479080280322768, 0.6767675184643195, 0.9802420445539632, 0.9092974268256819, 0.4910320979328105, -0.11479080280322579, -0.6767675184643194, -0.9802420445539632, -0.9092974268256819, -0.4910320979328106, 0.11479080280322743, 0.6767675184643193, 0.9802420445539632, 0.909297426825682, 0.49103209793281066, -0.1147908028032273, -0.6767675184643192, -0.9802420445539632, -0.909297426825682, -0.4910320979328108, 0.11479080280322719, 0.676767518464319, 0.9802420445539631, 0.9092974268256822, 0.491032097932814, -0.11479080280322707, -0.676767518464319, -0.9802420445539625, -0.9092974268256822, -0.491032097932811, 0.11479080280323047, 0.6767675184643189, 0.9802420445539625, 0.9092974268256822, 0.4910320979328142, -0.11479080280322682, -0.6767675184643214, -0.9802420445539631, -0.9092974268256808, -0.4910320979328112, 0.11479080280322317, 0.6767675184643187, 0.9802420445539624, 0.9092974268256823, 0.4910320979328082, -0.11479080280322658, -0.6767675184643213, -0.980242044553963, -0.9092974268256838, -0.49103209793281144, 0.11479080280322293, 0.6767675184643185, 0.9802420445539637, 0.9092974268256824, 0.49103209793280844, -0.11479080280322633, -0.6767675184643158, -0.980242044553963, -0.9092974268256839, -0.49103209793281166, 0.11479080280322974, 0.6767675184643184, 0.9802420445539637, 0.9092974268256825, 0.4910320979328148, -0.11479080280321903, -0.6767675184643209, -0.9802420445539629, -0.909297426825681, -0.4910320979328119, 0.11479080280322244, 0.6767675184643129, 0.9802420445539636, 0.9092974268256826, 0.49103209793281505, -0.11479080280322584, -0.6767675184643155, -0.9802420445539644, -0.9092974268256812, -0.49103209793281205, 0.1147908028032222, 0.6767675184643127, 0.980242044553965]
```
Отображение графика:
```py
>>> import pylab
>>> x = list(sps2)
>>> y = list(range(100))
>>> pylab.plot(y,x)
[<matplotlib.lines.Line2D object at 0x000001AD2659D940>]
>>> pylab.title('3.5.График')
Text(0.5, 1.0, '3.5.График')
>>> pylab.show()
```
![](Ris1.png)
## 4.Управляющая инструкция while.
### 4.1.Цикл со счетчиком.
```py
>>> rashod = 300
>>> while rashod:
print("Расход =", rashod)
rashod -= 50
Расход = 300
Расход = 250
Расход = 200
Расход = 150
Расход = 100
Расход = 50
```
Цикл останавливается, когда rashod принимает значение False, то есть rashod = 0.
В остальных случаях 300, 250, 200... -> True
### 4.2.Пример с символьной строкой.
```py
>>> import math
>>> stroka = 'Расчет процесса в объекте регулирования'
>>> i = 0
>>> sps = []
>>> while i < len(stroka):
r = 1-2/(1+math.exp(0.1*i))
sps.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
>>> import pylab
>>> x = list(range(i))
>>> y = list(sps)
>>> pylab.plot(y,x)
[<matplotlib.lines.Line2D object at 0x000001AD265F3B20>]
>>> pylab.title('4.2.График')
Text(0.5, 1.0, '4.2.График')
>>> pylab.show()
```
![](Ris2.png)
### 4.3.Проверка на простое число
Простое число такое, которое делится на самого себя и 1.
```py
>>> chislo = 267
>>> kandidat = chislo//2 # 267//2 = 133 - максимально возможный делитель
>>> while kandidat > 1:
if chislo%kandidat == 0: #проверка делимости
print(chislo, ' имеет множитель ',kandidat)
break #выявляется ПЕРВЫЙ возможный множитель(кроме 1) и завершает цикл
kandidat -= 1 #рассматриваем остальные числа
else:
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
kandidat -= 1
else:
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
```
### 4.4.Инструкция continue.
Инструкция continue используют внутри циклов для прерывания текущей итерации и немедленного перехода к следующей.
continue(в отличие от break) только пропускает оставшуюся часть кода и переходит к проверке условия следующей итерации.
### Пример с for:
```py
>>> sps = [2, 15, 14, 8, 3, 7, 10]
>>> for k in sps:
if k > 10:
continue #пропускает число больше 10
print(k)
2
8
3
7
10
```
### Пример с while:
```py
>>> chislo = 0
>>> while chislo < 10:
chislo += 1
if chislo % 2 == 0:
continue #пропускает, если число четное
print(chislo)
1
3
5
7
9
```
## 5.Завершение работы со средой IDLE.

@ -0,0 +1,90 @@
## Общее контрольное задание по Теме 5
Кузьменко Елена, А-02-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
1)Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
2)Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
3)Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
### 1)Определение порядкового номера каждой буквы.
```py
>>> str1 = "python"
>>> alphabet = "abcdefghijklmnopqrstuvwxyz"
>>> for i in str1:
if i in alphabet:
num = alphabet.index(i) + 1
print('В алфавите буква ',i,' под номером ',num)
else: continue
В алфавите буква p под номером 16
В алфавите буква y под номером 25
В алфавите буква t под номером 20
В алфавите буква h под номером 8
В алфавите буква o под номером 15
В алфавите буква n под номером 14
```
### 2)Наличие и отсутствие элемента в списке.
```py
>>> str2 = """Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом)."""
>>> spis2 = str2.split(); spis2
['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта.', 'Для', 'этого', 'списка', '–', 'определите,', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение,', 'и', 'выведите', 'соответствующее', 'сообщение:', 'либо', 'о', 'нахождении', 'элемента,', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', '(проверить', 'как', 'с', 'имеющимся,', 'так', 'и', 'с', 'отсутствующим', 'словом).']
>>> words = ["словами","значения"]
>>> i = 0
>>> while i < len(words): #i - слово 1 и 2
word = words[i]
j = 0
while j < len(spis2):
if spis2[j] == word:
print('В списке нашелся элемент \"',word,'\"')
break
j += 1
else:
print('В списке элемент \"',word,'\" отсутствует')
i += 1 #переход ко второму слову в words
В списке нашелся элемент " словами "
В списке элемент " значения " отсутствует
```
### 3)Инструкция вывода среднего балла по заданной фамилии.
```py
>>> stud = ['Кузьменко','Криви','Добровольска','Беженарь']
>>> grade = [4.6, 4.5, 4.7, 4.9]
>>> stud1 = ['Добровольска','Беженарь','Криви','Кузьменко']
>>> grade1 = [4.8, 5.0, 4.7, 4.7]
>>> choice = input('Фамилия студента: ')
Фамилия студента: Кузьменко
>>> grade0 = 0
>>> for i in range(len(stud)):
if stud[i] == choice:
grade0 = grade[i]
break
>>> print('Средний балл летней сессии: ',grade0)
Средний балл летней сессии: 4.6
>>> choice1 = input('Фамилия студента: ')
Фамилия студента: Добровольска
>>> grade3 = 0
>>> for j in range(len(stud1)):
if stud1[i] == choice1:
grade3 = grade1[i]
break
>>> print('Средний балл зимней сессии: ',grade3)
Средний балл зимней сессии: 4.8
```
Загрузка…
Отмена
Сохранить