Сравнить коммиты
	
		
			47 Коммитов 
		
	
	
	| Автор | SHA1 | Дата | 
|---|---|---|
|  | f43cd6d7d6 | 2 недель назад | 
|  | a80996500c | 2 недель назад | 
|  | 3bbde25280 | 2 недель назад | 
|  | f53475df09 | 2 недель назад | 
|  | f8130baace | 2 недель назад | 
|  | 9dd0bcc7e4 | 2 недель назад | 
|  | c0fddb26aa | 2 недель назад | 
|  | dbf5fa0aa7 | 2 недель назад | 
|  | 9d906b2707 | 2 недель назад | 
|  | 3e7e9e4bc6 | 2 недель назад | 
|  | 43e226f93a | 2 недель назад | 
|  | e82bee0798 | 2 недель назад | 
|  | 862caafb63 | 2 недель назад | 
|  | fb180d2801 | 2 недель назад | 
|  | 8e9ad72b9e | 2 недель назад | 
|  | bb7f2300e8 | 2 недель назад | 
|  | 33243b12e3 | 4 недель назад | 
|  | f2521e7d6f | 4 недель назад | 
|  | 2b1731cd13 | 4 недель назад | 
|  | 5e8ca2bb95 | 4 недель назад | 
|  | 0ed8b284a4 | 1 месяц назад | 
|  | a575ca48f6 | 1 месяц назад | 
|  | d90e52ca71 | 1 месяц назад | 
|  | d07e8a5160 | 1 месяц назад | 
|  EfremovSI | d05b50ce9c | 1 месяц назад | 
|  EfremovSI | 04ad8bddc1 | 1 месяц назад | 
|  EfremovSI | d8500b559d | 2 месяцев назад | 
|  EfremovSI | e2ff24dcb8 | 2 месяцев назад | 
|  EfremovSI | 7687605994 | 2 месяцев назад | 
|  EfremovSI | 6ad00aa021 | 2 месяцев назад | 
|  EfremovSI | 49cdddbc29 | 2 месяцев назад | 
|  EfremovSI | ea77f9aecc | 2 месяцев назад | 
|  EfremovSI | 52ea045d77 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 521f50c1bd | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 6c1db3c319 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 35d898d69f | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 98cd4b6c07 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 11f7111e58 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 45011654f1 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 3bafa54258 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 4e21c2e7a4 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | e46abf35e0 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | f657cbaa5b | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 2c7ead240d | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 4fe951ece2 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 67620ad056 | 2 месяцев назад | 
|  Пользователь № 17 аудитории К-522 | 248bd5a980 | 2 месяцев назад | 
| После Ширина: | Высота: | Размер: 26 KiB | 
| После Ширина: | Высота: | Размер: 29 KiB | 
| После Ширина: | Высота: | Размер: 20 KiB | 
| После Ширина: | Высота: | Размер: 11 KiB | 
| После Ширина: | Высота: | Размер: 14 KiB | 
| После Ширина: | Высота: | Размер: 29 KiB | 
| @ -0,0 +1,5 @@ | ||||
| #Программа по Теме 1 <Ефремов Станислав> | ||||
| print('Hello') | ||||
| h=input('Your name=') | ||||
| import os | ||||
| os.chdir('C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\') | ||||
| После Ширина: | Высота: | Размер: 12 KiB | 
| После Ширина: | Высота: | Размер: 48 KiB | 
| После Ширина: | Высота: | Размер: 124 KiB | 
| @ -0,0 +1,25 @@ | ||||
| #Протокол по Теме 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-17\Desktop\python-labs\TEMA1>\\Tema1\\') | ||||
| SyntaxError: incomplete input | ||||
| os.chdir('<C:\Users\u522-17\Desktop\python-labs\TEMA1>\\Tema1\\') | ||||
| SyntaxError: incomplete input | ||||
| os.chdir('<C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\') | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#3>", line 1, in <module> | ||||
|     os.chdir('<C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\') | ||||
| OSError: [WinError 123] Синтаксическая ошибка в имени файла, имени папки или метке тома: '<C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\' | ||||
| os.chdir('C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\') | ||||
| 
 | ||||
| ========== RESTART: C:/Users/u522-17/Desktop/python-labs/TEMA1/Pr0.py ========== | ||||
| Hello | ||||
| Your name=Stas | ||||
| import Pr0 | ||||
| Hello | ||||
| Your name=stas | ||||
| import prb1 | ||||
| Как Вас зовут? Стас | ||||
| Привет, Стас | ||||
| @ -0,0 +1,130 @@ | ||||
| # Отчет по теме 1 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## 1-2. Запуск  | ||||
| 	Была запущена программа-интерпретатор: | ||||
|     | ||||
| 
 | ||||
| ## 3-5. Диалоговое окно | ||||
| 	 | ||||
| 	Были введены несколько инструкций в диалоговое окно интерпретатора: | ||||
| 	 | ||||
| ```py | ||||
| print('hello') | ||||
| hello | ||||
| 	 | ||||
| h=input('Your name=') | ||||
| Your name=stasyan | ||||
| 	 | ||||
| exit() - закрывает интерпретатор | ||||
| ``` | ||||
| 	 | ||||
| ## 6-7. Интерактивная графическая оболочка | ||||
| 
 | ||||
|  | ||||
| 	 | ||||
| 	было изучено устройство главного командного окна среды. | ||||
| 	 | ||||
| ## 8. Настройка рабочего каталога. | ||||
| 
 | ||||
| ```py | ||||
| import os | ||||
| os.chdir('C:\\Users\\u522-17\\Desktop\\python-labs\\TEMA1\\') | ||||
| ``` | ||||
| 	 | ||||
| ## 9. Персонализация среды. | ||||
| 
 | ||||
|   | ||||
| 	 | ||||
|  | ||||
| 	 | ||||
| ## 10. Окно редактора | ||||
| 	Воспользовались окном редактора для написания кода, результат: | ||||
| 	 | ||||
| 	========== RESTART: C:/Users/u522-17/Desktop/python-labs/TEMA1/Pr0.py ========== | ||||
| Hello | ||||
| Your name=Stas | ||||
|  | ||||
| 
 | ||||
| ### Были использованы следующие методы запуска инструкций: | ||||
| 1) Меню редактора: Run module | ||||
| 2) Кнопка F5 | ||||
| 3) Команда import Pr0 | ||||
| 
 | ||||
| ## 11. Запуск prb1 | ||||
| 	 | ||||
| import prb1 | ||||
| Как Вас зовут? Стас | ||||
| Привет, Стас | ||||
| 
 | ||||
| ## 12-13. Просмотр pycache | ||||
| 	 | ||||
|  | ||||
| 	 | ||||
| ## 14. Вызов раздела помощи | ||||
| 
 | ||||
| 	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. | ||||
| 	   | ||||
| 	  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. | ||||
| 	 | ||||
|   Также были рассмотрены другие способы получения раздела помощи. | ||||
|   | ||||
| ## 15. Перемещение между окнами | ||||
| 
 | ||||
| ### 15.1 Открыт prb1.py | ||||
| 
 | ||||
| ### 15.2 Перемещение меж окнами | ||||
| 
 | ||||
| ### 15.3 Запуск программы из окна редактора: | ||||
| 
 | ||||
| ================ RESTART: C:\Users\u522-17\Desktop\python-labs\TEMA1\prb1.py =============== | ||||
| Как Вас зовут? стас | ||||
| Привет, стас | ||||
| 
 | ||||
| ### 15.4 Была запущена программа tdemo_chaos | ||||
|  | ||||
| 
 | ||||
| ### 15.5 Рассмотрение примеров использования графической составляющией среды Python | ||||
|  | ||||
| Данные примеры способны помочь в плане структуризации собственного кода и изучении новых команд. | ||||
| 
 | ||||
| ## 16. Выход из среды | ||||
| 
 | ||||
| @ -0,0 +1,17 @@ | ||||
| # Индивидуальное контрольное задание по теме 1 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Вопрос | ||||
| 
 | ||||
| Если вы начали работу на новом для вас компьютере с предустановленной средой Python, на что надо обратить внимание после запуска интерактивной оболочки? | ||||
| 
 | ||||
| ## Ответ | ||||
| 
 | ||||
| 1) Какая версия Python была предустановлена ? | ||||
| 
 | ||||
| 2) Куда была установлена среда? | ||||
| 
 | ||||
| 3) Установлены ли нужные модули для работы со средой?  | ||||
| 
 | ||||
| 4) Откуда ведется импорт модулей (PATH)? | ||||
| После Ширина: | Высота: | Размер: 42 KiB | 
| После Ширина: | Высота: | Размер: 24 KiB | 
| После Ширина: | Высота: | Размер: 12 KiB | 
| После Ширина: | Высота: | Размер: 13 KiB | 
| @ -0,0 +1,705 @@ | ||||
| # Отчет по теме 2 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## 1. Запуск. | ||||
| 
 | ||||
| ### 1.1 Запуск оболочки IDLE и установка рабочего каталога. | ||||
| 
 | ||||
| ```py | ||||
| import os | ||||
| os.chdir('C:\Program Files (x86)\учёха 3 курс\pythonsky\python-labs\TEMA2') | ||||
| ``` | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ## 2. Изучение простых объектов. | ||||
| 
 | ||||
| ### 2.1 Операции присваивания | ||||
| 
 | ||||
| ```py | ||||
| f1=16; f2=3 | ||||
| f1,f2 | ||||
| (16, 3) | ||||
| f1;f2 | ||||
| 16 | ||||
| 3 | ||||
| ```  | ||||
| ### 2.2 Функционал команд dir(), type() и del: | ||||
| 
 | ||||
| Был получен список атрибутов объекта f1: | ||||
| 
 | ||||
| ```py | ||||
| dir(f1) | ||||
| ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes'] | ||||
| ``` | ||||
| 
 | ||||
| Также была определена классовая принадлежность объекта f2: | ||||
| 
 | ||||
| ```py | ||||
| type(f2) | ||||
| <class 'int'> | ||||
| ``` | ||||
| 
 | ||||
| Команда del отвечает за удаление объекта или его части из ОП. | ||||
| 
 | ||||
| ```py | ||||
| del f1, f2 | ||||
| 
 | ||||
| f1, f2 | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#9>", line 1, in <module> | ||||
|     f1, f2 | ||||
| NameError: name 'f1' is not defined | ||||
| ``` | ||||
| 
 | ||||
| ## 3-4. Правила именования и сохранение списка под именем: | ||||
| 
 | ||||
| Были введены некоторые предложенные команды, две из которых не соответствовали правилам именования: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| ```py | ||||
| import keyword | ||||
| keyword.kwlist | ||||
| ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] | ||||
| ```  | ||||
| В данном случае полученному списку было присвоено следующее имя: | ||||
| 
 | ||||
| ```py | ||||
| ara = keyword.kwlist | ||||
| ara | ||||
| ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] | ||||
| ``` | ||||
| 
 | ||||
| ## 5. Встроенные идентификаторы. | ||||
| 
 | ||||
| ### 5.1  Вывод списка встроенных идентификаторов: | ||||
| 
 | ||||
| ```py | ||||
| import builtins | ||||
| dir(builtins) | ||||
| ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip'] | ||||
| ```	 | ||||
| ### 5.2 Изучение назначения функций: | ||||
| 
 | ||||
| #### 5.2.1 Функция ABS: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| #### 5.2.2 Функция len: | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| #### 5.2.3 Функция max | ||||
| 
 | ||||
| ```py | ||||
| help(max) | ||||
| Help on built-in function max in module builtins: | ||||
| 
 | ||||
| max(...) | ||||
|     max(iterable, *[, default=obj, key=func]) -> value | ||||
|     ....... | ||||
|     With two or more positional arguments, return the largest argument. | ||||
| 
 | ||||
| max(numbers) | ||||
| 3 | ||||
| ``` | ||||
| 
 | ||||
| #### 5.2.4 Функция min | ||||
| 
 | ||||
| ```py | ||||
| help(min) | ||||
| Help on built-in function min in module builtins: | ||||
| 
 | ||||
| min(...) | ||||
|     min(iterable, *[, default=obj, key=func]) -> value | ||||
|    ............ | ||||
|     With two or more positional arguments, return the smallest argument. | ||||
| 
 | ||||
| min(numbers) | ||||
| 1 | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| #### 5.2.5 Функция pow | ||||
| 
 | ||||
| ```py | ||||
| help(pow) | ||||
| Help on built-in function pow in module builtins: | ||||
| 
 | ||||
| pow(base, exp, mod=None) | ||||
|     ........... | ||||
| invoked using the three argument form. | ||||
| 
 | ||||
| pow(3, 2) | ||||
| 9 | ||||
| ``` | ||||
| 
 | ||||
| #### 5.2.6 Функция round | ||||
| 
 | ||||
| ```py | ||||
| help(round) | ||||
| Help on built-in function round in module builtins: | ||||
| 
 | ||||
| round(number, ndigits=None) | ||||
|     Round a number to a given precision in decimal digits. | ||||
| 
 | ||||
|     The return value is an integer if ndigits is omitted or None.  Otherwise | ||||
|     the return value has the same type as the number.  ndigits may be negative. | ||||
| 
 | ||||
| round(1.5) | ||||
| 2 | ||||
| ``` | ||||
| 
 | ||||
| #### 5.2.7 Функция sorted | ||||
| 
 | ||||
| ```py | ||||
| 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. | ||||
| 
 | ||||
| num = [3, 1, 2] | ||||
| sorted(num) | ||||
| [1, 2, 3] | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| #### 5.2.8 Функция sum | ||||
| 
 | ||||
| ```py | ||||
| help(sum) | ||||
| Help on built-in function sum in module builtins: | ||||
| 
 | ||||
| sum(iterable, /, start=0) | ||||
|     Return the sum of a 'start' value (default: 0) plus an iterable of numbers | ||||
| 
 | ||||
|     When the iterable is empty, return the start value. | ||||
|     This function is intended specifically for use with numeric values and may | ||||
|     reject non-numeric types. | ||||
| 
 | ||||
| sum(num) | ||||
| 6 | ||||
| ``` | ||||
| 
 | ||||
| #### 5.2.9 Функция zip | ||||
| 
 | ||||
| ```py | ||||
| help(zip) | ||||
| Help on class zip in module builtins: | ||||
| 
 | ||||
| class zip(object) | ||||
|  |  zip(*iterables, strict=False) | ||||
|  | | ||||
|  |  The zip object yields n-length tuples, where n is the number of iterables | ||||
|  |  passed as positional arguments to zip().  The i-th element in every tuple | ||||
|  |  comes from the i-th iterable argument to zip().  This continues until the | ||||
| ........................................... | ||||
| 
 | ||||
| num | ||||
| [3, 1, 2] | ||||
| numbers | ||||
| [1, 2, 3] | ||||
| j = zip(num, numbers) | ||||
| j | ||||
| <zip object at 0x000001E309D6DD00> | ||||
| zip_list = list(j) | ||||
| zip_list | ||||
| [(3, 1), (1, 2), (2, 3)] | ||||
| ``` | ||||
| 
 | ||||
| ## 6-7. Типы объектов. | ||||
| 
 | ||||
| ### 6. Проверка влияния больших и маленьких букв в имени переменных: | ||||
| 
 | ||||
| ```py | ||||
| Gg1=45 | ||||
| gg1 | ||||
| 1.6 | ||||
| Gg1 | ||||
| 45 | ||||
| ``` | ||||
| ### 7. Изучение базовых типов объектов: | ||||
|   | ||||
| int — целые числа (положительные, отрицательные или нуль). | ||||
| float — числа с плавающей точкой (дробные числа). | ||||
| complex — комплексные числа (имеют действительную и мнимую части). | ||||
| str — строковый тип данных для хранения текстовой информации. Строка может содержать буквы, цифры, пробелы, символы. | ||||
| bool в Python — это логический тип, принимать только два значения: True и False. | ||||
| 
 | ||||
| 
 | ||||
| #### 7.1 Логический тип: | ||||
| 
 | ||||
| ```py | ||||
| bb1 = True | ||||
| bb2 = False | ||||
| bb1;bb2 | ||||
| True | ||||
| False | ||||
| type(bb1) | ||||
| <class 'bool'> | ||||
| ``` | ||||
| 
 | ||||
| #### 7.2 Иные простые типы:  | ||||
| 
 | ||||
| ```py | ||||
| ii1=-1234567890 | ||||
| type(ii1) | ||||
| <class 'int'> | ||||
| 
 | ||||
| ff1=-8.9876e-12   | ||||
| type(ff1) | ||||
|           | ||||
| <class 'float'> | ||||
| 
 | ||||
| dv1=0b1101010 | ||||
|           | ||||
| type(dv1) | ||||
|           | ||||
| <class 'int'> | ||||
| ``` | ||||
| 
 | ||||
| Как можем заметить - двоичное число 0b1101010 в Python сохраняется в объекте класса int. | ||||
| 
 | ||||
| ```py | ||||
| vsm1=0o52765 | ||||
| type(vsm1) | ||||
| <class 'int'> | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| shest1=0x7109af6 | ||||
| type(shest1) | ||||
| <class 'int'> | ||||
| cc1=2-3j | ||||
| type(cc1) | ||||
| <class 'complex'> | ||||
| ``` | ||||
| 
 | ||||
| Ниже представлен иной способ создания комплексного числа: | ||||
| 
 | ||||
| ```py | ||||
| a=3.67; b=-0.45 | ||||
| cc2=complex(a,b) | ||||
| type(cc2) | ||||
| <class 'complex'> | ||||
| ``` | ||||
| 
 | ||||
| #### 7.3 Строка символом: | ||||
| 
 | ||||
| Строки выделяются как и апострофами, так и двойными кавычками, продемонстрируем: | ||||
| 
 | ||||
| ```py | ||||
| ss1='Это - строка символов' | ||||
| ss1="Это - строка символов" | ||||
| ``` | ||||
| 
 | ||||
| ##### Экранированные последовательности: | ||||
| ```py | ||||
| ss1a="Это - \" строка символов \", \n \t выводимая на двух строках" | ||||
| print(ss1a) | ||||
| ``` | ||||
| 
 | ||||
| Создадим строку по шаблону: | ||||
| 
 | ||||
| ```py | ||||
| ss1b= 'Меня зовут: \n Ефремов С.И.' | ||||
| print(ss1b) | ||||
| Меня зовут:  | ||||
|  Ефремов С.И. | ||||
| ``` | ||||
| 
 | ||||
| Создадим строку со значением объекта при помощи тройных кавычек: | ||||
| 
 | ||||
| ```py | ||||
| mnogo="""Нетрудно заметить , что в результате операции | ||||
| над числами разных типов получается число, | ||||
| имеющее более сложный тип из тех, которые участвуют в операции.""" | ||||
| 
 | ||||
| print(mnogo) | ||||
| Нетрудно заметить , что в результате операции | ||||
| над числами разных типов получается число, | ||||
| имеющее более сложный тип из тех, которые участвуют в операции. | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| 
 | ||||
| ss1[0] | ||||
| 'Э' | ||||
| ss1[8] | ||||
| 'р' | ||||
| ss1[-2] | ||||
| 'о' | ||||
| ss1[0] | ||||
| 'Э' | ||||
| ss1[8] | ||||
| 'р' | ||||
| ss1[-2] | ||||
| 'о' | ||||
| ss1[6:9] | ||||
| 'стр' | ||||
| ss1[13:] | ||||
| 'символов' | ||||
| ss1[:13] | ||||
| 'Это - строка ' | ||||
| ss1[5:-8] | ||||
| ' строка ' | ||||
| ss1[3:17:2] | ||||
| '  тоасм' | ||||
| ``` | ||||
| Важно заметить, что цифра '2' здесь отвечает за шаг. | ||||
| 
 | ||||
| 
 | ||||
| Здесь, подобно примеру выше, мы перечислили элементы с индексами от 3 до 17, но в обратном порядке (с положительным шагом перечисление элементов в обратную сторону работать не будет). | ||||
| ```py | ||||
| ss1[17:3:-2] | ||||
| 'омсаот ' | ||||
| ``` | ||||
| 
 | ||||
| Изменив '17' на '-4' мы получим тот же результат, ведь два этих индекса соответствуют одному и тому же элементу строки. | ||||
| ```py | ||||
| ss1[-4:3:-2] | ||||
| 'омсаот ' | ||||
| ``` | ||||
| 
 | ||||
| Таким образом, мы переопределили элемент под индексом 4. | ||||
| ```py | ||||
| ss1=ss1[:4]+'='+ss1[5:] | ||||
| ss1 | ||||
| 'Это = строка символов' | ||||
| ```  | ||||
| 
 | ||||
| 
 | ||||
| ```py | ||||
| 
 | ||||
| ss1b1 = ss1b[:3]; print(ss1b1) | ||||
| Мен | ||||
| 
 | ||||
| ss1b2 = ss1b[:10]+' - \n'+ss1bpetr | ||||
| print(ss1b2) | ||||
| Меня зовут -  | ||||
| Петр Мамонов | ||||
| ``` | ||||
| 
 | ||||
| ## 8. Списки, кортежи, словари и множества. | ||||
| 
 | ||||
| ```py | ||||
| 
 | ||||
| help(list) | ||||
| Help on class list in module builtins: | ||||
| 
 | ||||
| class list(object) | ||||
|  |  list(iterable=(), /) | ||||
|  | | ||||
|  |  Built-in mutable sequence. | ||||
|  | | ||||
|  |  If no argument is given, the constructor creates a new empty list. | ||||
|  |  The argument must be an iterable if specified. | ||||
| 
 | ||||
| 
 | ||||
| help(tuple) | ||||
| Help on class tuple in module builtins: | ||||
| 
 | ||||
| class tuple(object) | ||||
|  |  tuple(iterable=(), /) | ||||
|  | | ||||
|  |  Built-in immutable sequence. | ||||
|  | | ||||
|  |  If no argument is given, the constructor returns an empty tuple. | ||||
|  |  If iterable is specified the tuple is initialized from iterable's items. | ||||
|  | | ||||
|  |  If the argument is a tuple, the return value is the same object. | ||||
|  | | ||||
|  |  Built-in subclasses: | ||||
|  |      asyncgen_hooks | ||||
|  |      UnraisableHookArgs | ||||
| 
 | ||||
| 
 | ||||
| help(dict) | ||||
| Help on class dict in module builtins: | ||||
| 
 | ||||
| class dict(object) | ||||
|  |  dict() -> new empty dictionary | ||||
|  |  dict(mapping) -> new dictionary initialized from a mapping object's | ||||
|  |      (key, value) pairs | ||||
|  |  dict(iterable) -> new dictionary initialized as if via: | ||||
|  |      d = {} | ||||
|  |      for k, v in iterable: | ||||
|  |          d[k] = v | ||||
|  |  dict(**kwargs) -> new dictionary initialized with the name=value pairs | ||||
|  |      in the keyword argument list.  For example:  dict(one=1, two=2) | ||||
| 
 | ||||
| help(set) | ||||
| Help on class set in module builtins: | ||||
| 
 | ||||
| class set(object) | ||||
|  |  set(iterable=(), /) | ||||
|  | | ||||
|  |  Build an unordered collection of unique elements. | ||||
| 
 | ||||
| ``` | ||||
| ### 8.1 Работа со списками. | ||||
| 
 | ||||
| Список может содержать в себе элементы разных типов. | ||||
| ```py | ||||
| spis1=[111,'Spisok',5-9j] | ||||
| spis1 | ||||
| [111, 'Spisok', (5-9j)] | ||||
| ``` | ||||
| 
 | ||||
| Ввод можно производить в разных строках, пока не будет введена квадратная скобка. | ||||
| ```py | ||||
| 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] | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| '-8' - есть элемент под индексом 1 в исходном списке, между :: ничего нет, значит срез произойдёт до самого последнего элемента, а '2' - есть шаг пересчёта элементов. | ||||
| ```py | ||||
| 
 | ||||
| spis1[-1] | ||||
| (5-9j) | ||||
| stup[-8::2] | ||||
| [0, 1, 1, 1] | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| spis1[1]='Список' | ||||
| spis1 | ||||
| [111, 'Список', (5-9j)] | ||||
| len(spis1) | ||||
| 3 | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| С помощью '.append' можно добавить какой-либо элемент в список, а '.pop' - удалить. | ||||
| ```py | ||||
| spis1.append('компиш') | ||||
| spis1 | ||||
| [111, 'Список', (5-9j), 'компиш'] | ||||
| spis1.append(ss1b) | ||||
| spis1 | ||||
| [111, 'Spisok', (5-9j), 'компиш', 'Меня зовут: \n Ефремов С.И.'] | ||||
| spis1.pop(1) | ||||
| 'Spisok' | ||||
| spis1 | ||||
| [111, (5-9j), 'компиш', 'Меня зовут: \n Ефремов С.И.'] | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ```py | ||||
| spis1.insert(1, 'пицца') вставит второй аргумент под номер индекса элемента. | ||||
| spis1 | ||||
| [111, 'пицца', (5-9j), 'компиш', 'Меня зовут: \n Ефремов С.И.']  | ||||
| 
 | ||||
| spis1.remove('пицца') - удалит тот элемент, который полностью соответствует указанному в команде аргументу. | ||||
| spis1 | ||||
| [111, (5-9j), 'компиш', 'Меня зовут: \n Ефремов С.И.'] | ||||
| 
 | ||||
| spis1.extend('5-9') - добавит каждый элемент аргумента в конце списка. | ||||
| spis1 | ||||
| [111, (5-9j), 'компиш', 'Меня зовут: \n Ефремов С.И.', 'к', 'о', 'м', 'п', 'и', 'ш', '5', '-', '9'] | ||||
| 
 | ||||
| spis1.clear() - удаляет все элементы из списка. | ||||
| spis1 | ||||
| [] | ||||
| 
 | ||||
| spis1 | ||||
| [5, 3, 2, 1, 7, 6, 9] | ||||
| spis1.sort() - сортировка списка как и по числам* | ||||
| spis1 | ||||
| [1, 2, 3, 5, 6, 7, 9] | ||||
| spisbukva = ['b', 'a', 'c', 'g', 't'] | ||||
| spisbukva.sort() -  *так и по алфавиту | ||||
| spisbukva | ||||
| ['a', 'b', 'c', 'g', 't'] | ||||
| 
 | ||||
| spisbukva.reverse() - перемешивает элементы в обратном порядке | ||||
| spisbukva | ||||
| ['t', 'g', 'c', 'b', 'a'] | ||||
| 
 | ||||
| spis1 | ||||
| [1, 2, 3, 5, 6, 7, 9] | ||||
| spis111 = spis1.copy() - копирует список. | ||||
| spis111 | ||||
| [1, 2, 3, 5, 6, 7, 9] | ||||
| 
 | ||||
| spis1 | ||||
| [1, 2, 3, 5, 6, 7, 9] | ||||
| spis1.count(5) - считает то, сколько раз элемент из аргумента появляется в списке. | ||||
| 1 | ||||
| 
 | ||||
| spis1.index(9) - возвращает индекс элемента, совпадающего по значению с аргументом. | ||||
| 6 | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| spis2=[spis1, [4,5,6,7]] - элементы переменной - два списка | ||||
| spis2 | ||||
| [[1, 2, 3, 5, 6, 7, 9], [4, 5, 6, 7]] | ||||
| 
 | ||||
| spis2[0][1] - обращение ко второму элементу первого списка | ||||
| 2 | ||||
| 
 | ||||
| spis2[0][1]=78 - замена значения того же элемента на другое | ||||
| spis2 | ||||
| [[1, 78, 3, 5, 6, 7, 9], [4, 5, 6, 7]] | ||||
| 
 | ||||
| spis1 | ||||
| [1, 78, 3, 5, 6, 7, 9] - был видоизменен, ведь является элементом другого списка, к которому мы обратились и изменили соответственно. | ||||
| ``` | ||||
| #### Был придуман список, содержащий в себе 4 элемента разных типов: число, строка, логическое значение и список. | ||||
| 
 | ||||
| ```py | ||||
| list = ['glad', 18, True, ['a','b','c','d']] | ||||
| list | ||||
| ['glad', 18, True, ['a', 'b', 'c', 'd']] | ||||
| type(list) | ||||
| <class 'list'> | ||||
| ``` | ||||
| 
 | ||||
| ### 8.2 Кортеж. | ||||
| 
 | ||||
| *Похож на список, но изменить его нельзя | ||||
| ```py | ||||
| kort1=(222,'Kortezh',77+8j) | ||||
| type(kort1) | ||||
| <class 'tuple'> | ||||
| kort1[2] = 90 | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#22>", line 1, in <module> | ||||
|     kort1[2] = 90 | ||||
| TypeError: 'tuple' object does not support item assignment | ||||
| ``` | ||||
| 
 | ||||
| Однако можно переопределить (добавить или удалить определенные элементы). | ||||
| ```py | ||||
| kort1= kort1+(1,2) - добавление | ||||
| kort1 | ||||
| (222, 'Kortezh', (77+8j), 1, 2) | ||||
| kort2=kort1[:2]+kort1[3:] - удаление | ||||
| kort2 | ||||
| (222, 'Kortezh', 1, 2) | ||||
| ``` | ||||
| 
 | ||||
| Определение индекса и подсчёт заданного элемента: | ||||
| ```py | ||||
| kort1.index(2) | ||||
| 4 | ||||
| kort1 | ||||
| (222, 'Kortezh', (77+8j), 1, 2) | ||||
| kort1.count(222) | ||||
| 1 | ||||
| ``` | ||||
| ### 8.3 Словарь | ||||
| 
 | ||||
| -Является совокупностью пар типа 'key:value' | ||||
| 
 | ||||
| ```py | ||||
| dic1={'Saratov':145, 'Orel':56, 'Vologda':45} | ||||
| dic1['Saratov'] | ||||
| 145 | ||||
| 
 | ||||
| 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] | ||||
| dic1 | ||||
| {'Saratov': 145, 'Orel': 56, 'Vologda': 45, 'Pskov': 78}  | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| dic2={1:'mean',2:'standart deviation',3:'correlation'} | ||||
| dic3={'statistics':dic2,'POAS':['base','elementary','programming']} - элементом словаря может являться сам словарь | ||||
| dic3 | ||||
| {'statistics': {1: 'mean', 2: 'standart deviation', 3: 'correlation'}, 'POAS': ['base', 'elementary', 'programming']} | ||||
| 
 | ||||
| dic3['statistics'][2] | ||||
| 'standart deviation' | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)]) | ||||
| dic4 | ||||
| {1: ['A', 'B', 'C'], 2: [4, 5], 'Q': 'Prim', 'Stroka': 'Меня зовут: Ефремов С.И.'} | ||||
| dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b])) | ||||
| dic5 | ||||
| {'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: Ефремов С.И.'} | ||||
| ``` | ||||
| 
 | ||||
| ```py | ||||
| tupl3 = ('A', 'B', 'C', 'D', 'E', 'F','G') | ||||
| l1st = ['1', '2', '3', '4', '5'] | ||||
| 
 | ||||
| dict227 = dict(zip(tupl3,l1st)) | ||||
| dict227 | ||||
| {'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5'} | ||||
| len(dict227) | ||||
| 5 - элеменов получится пять, ведь команда zip работала столько раз, сколько элементов в наиболее маленьком объекте | ||||
| ``` | ||||
| 
 | ||||
| ```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={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'} | ||||
| print(mnoz1) | ||||
| {'двигатель', 'датчик', 'микропроцессор', 'линия связи'} | ||||
| 
 | ||||
| len(mnoz1) | ||||
| 4 | ||||
| ``` | ||||
| Некоторые операции во множестве: | ||||
| ```py | ||||
| 'датчик' in mnoz1 | ||||
| True | ||||
| mnoz1.add('реле') | ||||
| print(mnoz1) | ||||
| {'двигатель', 'датчик', 'линия связи', 'микропроцессор', 'реле'} | ||||
| mnoz1.remove('линия связи') | ||||
| print(mnoz1) | ||||
| {'двигатель', 'датчик', 'микропроцессор', 'реле'} | ||||
| ``` | ||||
| Было создано множество: | ||||
| 
 | ||||
| ```py | ||||
| mnoz1 = {'лев', '1', True, ('тигр', 1, 3)} | ||||
| mnoz1 | ||||
| {'1', True, 'лев', ('тигр', 1, 3)} | ||||
| mnoz1.remove(True) | ||||
| mnoz1 | ||||
| {'1', 'лев', ('тигр', 1, 3)} | ||||
| mnoz1.add('черный') | ||||
| mnoz1 | ||||
| {('тигр', 1, 3), 'лев', '1', 'черный'} | ||||
| ``` | ||||
| ## 9. | ||||
| 
 | ||||
| exit() | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,47 @@ | ||||
| # Общее контрольное задание по теме 2 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| •	Создать переменную с именем familia и со значением - символьной строкой – своей фами-лией в латинской транскрипции. | ||||
| 
 | ||||
| •	Создать переменную со значением, совпадающим с первой буквой из familia. | ||||
| 
 | ||||
| •	Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python. | ||||
| 
 | ||||
| •	Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка. | ||||
| 
 | ||||
| •	Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите  | ||||
| инструкцию, позволяющую убедиться, что тип переменной – это tuple. | ||||
| 
 | ||||
| •	Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.  | ||||
| 
 | ||||
| •	Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима». | ||||
| 
 | ||||
| •	Создайте словарь dict_bas, в котором ключами являются русские названия типов перемен-ных, использованных в предыдущих операторах, а значениями – ранее созданные пере-менные, соответствующие этим типам. | ||||
| 
 | ||||
| ## Решение | ||||
| ```py | ||||
| >>> familia = 'Efremov' | ||||
| >>> bukva = familia[0] | ||||
| >>> import keyword | ||||
| >>> sp_kw = keyword.kwlist | ||||
| >>> sp_kw.remove('nonlocal') | ||||
| >>> print(sp_kw) | ||||
| ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'] | ||||
| >>> print(sp_kw.count('nonlocal')) | ||||
| 0 | ||||
| >>> kort_nam = ('Stas', 'Liza', 'Andrew', 'Zhenya') | ||||
| >>> print(type(kort_nam)) | ||||
| <class 'tuple'> | ||||
| >>> kort_nam = kort_nam + ('Denis', 'Alena') | ||||
| >>> print(kort_nam.count('Dima')) | ||||
| 0 | ||||
| >>> key = ['str', 'list', 'tuple'] | ||||
| >>> value = ['familia', 'sp_kw', 'kort_nam'] | ||||
| >>> dict_bas = dict(zip(key, value)) | ||||
| >>> print(dict_bas) | ||||
| {'str': 'familia', 'list': 'sp_kw', 'tuple': 'kort_nam'} | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| @ -0,0 +1,15 @@ | ||||
| familia = 'Efremov' | ||||
| bukva = familia[0] | ||||
| import keyword | ||||
| sp_kw = keyword.kwlist | ||||
| sp_kw.remove('nonlocal') | ||||
| print(sp_kw) | ||||
| print(sp_kw.count('nonlocal')) | ||||
| kort_nam = ('Stas', 'Liza', 'Andrew', 'Zhenya') | ||||
| print(type(kort_nam)) | ||||
| kort_nam = kort_nam + ('Denis', 'Alena') | ||||
| print(kort_nam.count('Dima')) | ||||
| key = ['str', 'list', 'tuple'] | ||||
| value = ['familia', 'sp_kw', 'kort_nam'] | ||||
| dict_bas = dict(zip(key, value)) | ||||
| print(dict_bas) | ||||
| @ -0,0 +1,19 @@ | ||||
| # Индивидуальное контрольное задание по теме 2 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| 
 | ||||
| Создайте два списка: один – с фамилиями 3-х студентов вашей группы, другой – с 5 числами: 11,12,13,14,15. Напишите инструкцию создания словаря, в котором фамилии студентов были бы ключами, а числа – значениями. Отобразите получившийся словарь. Отобразите его ключи с упорядочением по фамилиям студентов. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| >>> vvv = ['Хатюхин', 'Шабатов', 'Туровец'] | ||||
| >>> ch = [11,12,13,14,15] | ||||
| >>> slovar = dict(zip(vvv,ch)) | ||||
| >>> print(slovar) | ||||
| {'Хатюхин': 11, 'Шабатов': 12, 'Туровец': 13} | ||||
| >>> sorted(slovar.keys()) | ||||
| ['Туровец', 'Хатюхин', 'Шабатов'] | ||||
| ``` | ||||
| @ -0,0 +1,726 @@ | ||||
| # Отчет по теме 3 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## 1. Запуск. | ||||
| 
 | ||||
| ### 1.1 Запуск оболочки IDLE и установка рабочего каталога. | ||||
| 
 | ||||
| ```py | ||||
| import os | ||||
| os.chdir('C:\Program Files (x86)\учёха 3 курс\pythonsky\python-labs\TEMA3') | ||||
| ``` | ||||
| 
 | ||||
| ## 2. Преобразование простых базовых типов объектов. | ||||
| 
 | ||||
| ### 2.1 Логический тип. | ||||
| ```py | ||||
| logiz2 = bool(0)             | ||||
| logiz1 = bool(56)              | ||||
| logiz3=bool("Beta")               | ||||
| logiz4=bool("") | ||||
| ``` | ||||
| 
 | ||||
| ### 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") | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#19>", line 1, in <module> | ||||
|     tt5=int("98.76") | ||||
| ValueError: invalid literal for int() with base 10: '98.76' | ||||
| ``` | ||||
| Значение tt5 не может быть преобразовано командой вида int(), т.к. хоть и представлено в виде строки, но всё равно относится к вещественным числам. | ||||
| 
 | ||||
| #### Преобразование с помощью функции float | ||||
| 
 | ||||
| ```py | ||||
| >>> flt1=float(789) | ||||
| >>> flt1 | ||||
| 789.0 | ||||
| >>> flt2=float(-6.78e2) | ||||
| >>> flt2 | ||||
| -678.0 | ||||
| >>> flt3=float("Infinity") | ||||
| >>> flt3 | ||||
| inf | ||||
| >>> flt4=float("-inf") | ||||
| >>> flt4 | ||||
| -inf | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### 2.3 Преобразование десятичных чисел: | ||||
| 
 | ||||
| ```py | ||||
| >>> hh=123 | ||||
| >>> dv1=bin(hh)  #двоичное | ||||
| >>> dv1 | ||||
| '0b1111011' | ||||
| >>> vos1=oct(hh)  #восьмиричное | ||||
| >>> vos1 | ||||
| '0o173' | ||||
| >>> shs1=hex(hh)  #шестнадцатеричное | ||||
| >>> shs1 | ||||
| '0x7b' | ||||
| ``` | ||||
| #### Пример обратного преобразования: | ||||
| 
 | ||||
| ```py | ||||
| >>> int(dv1,2)  | ||||
| 123 | ||||
| >>> int(vos1,8) | ||||
| 123 | ||||
| >>> int(shs1, 16) | ||||
| 123 | ||||
| ``` | ||||
| 
 | ||||
| ## 3 Преобразование более сложных базовых типов | ||||
| 
 | ||||
| ### 3.1 Преобразование в строку символов | ||||
| 
 | ||||
| ```py | ||||
| >>>strk1=str(23.6) | ||||
| >>>strk1 | ||||
| '23.6' | ||||
| >>>strk2=str(logiz3) | ||||
| >>>strk2 | ||||
| 'True' | ||||
| >>>strk3=str(["A","B","C"]) - #cписок | ||||
| >>>strk3 | ||||
| "['A', 'B', 'C']" | ||||
| >>>strk4=str(("A","B","C"))  #кортеж | ||||
| >>>strk4 | ||||
| "('A', 'B', 'C')" | ||||
| >>>strk5=str({"A":1,"B":2,"C":9})  #словарь | ||||
| >>>strk5 | ||||
| "{'A': 1, 'B': 2, 'C': 9}" | ||||
| ``` | ||||
| 
 | ||||
| ### 3.2 Функция list() | ||||
| 
 | ||||
| ```py | ||||
| >>> spis1=list("Строка символов")  #преобразование строки в список | ||||
| >>> spis1 | ||||
| ['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в'] | ||||
| >>> spis2=list((124,236,-15,908)) #из кортежа в список | ||||
| >>> spis2 | ||||
| [124, 236, -15, 908] | ||||
| spis3=list({"A":1,"B":2,"C":9})  #из словаря в список | ||||
| spis3 | ||||
| ['A', 'B', 'C'] | ||||
| 
 | ||||
| >>> spis3=list({"A":1,"B":2,"C":9}.values())  #вывод значений списка | ||||
| >>> spis3 | ||||
| [1, 2, 9] | ||||
| >>> spis3=list({"A":1,"B":2,"C":9}.items())  #вывод ключей-значений | ||||
| >>> spis3 | ||||
| ``` | ||||
| 
 | ||||
| ### 3.3. Функция tuple() | ||||
| 
 | ||||
| ```py | ||||
| >>> kort7=tuple('Строка символов')  #из строки в кортеж | ||||
| >>> kort7 | ||||
| ('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в') | ||||
|    | ||||
| >>> kort8=tuple(spis2) #из списка в кортеж | ||||
| >>> kort8 | ||||
| (124, 236, -15, 908) | ||||
| 
 | ||||
| >>> kort9=tuple({"A":1,"B":2,"C":9}) #словарь в кортеж | ||||
| >>> kort9 | ||||
| ('A', 'B', 'C') | ||||
| 
 | ||||
| ### 3.4 Очистка оперативной памяти | ||||
| 
 | ||||
| ```py | ||||
| >>> del kort8 | ||||
| >>> kort8 | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#65>", line 1, in <module> | ||||
|     kort8 | ||||
| NameError: name 'kort8' is not defined. Did you mean: 'kort7'? | ||||
| ``` | ||||
| ```py | ||||
| >>> fam = ('Efremov S.I') | ||||
| >>> spisfam = spis(fam) | ||||
| >>> spisfam = list(fam) | ||||
| >>> kortfam = tuple(spisfam) | ||||
| >>> strfam = str(kortfam) | ||||
| >>> strfam | ||||
| "('E', 'f', 'r', 'e', 'm', 'o', 'v', ' ', 'S', '.', 'I')" | ||||
| >>> type(strfam) | ||||
| <class 'str'> | ||||
| ``` | ||||
| 
 | ||||
| ## 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'> | ||||
| ``` | ||||
| Тип полученной переменной является вещественным. | ||||
| 
 | ||||
| ### 4.4. Округление вниз(//). | ||||
| 
 | ||||
| ```py | ||||
| >>> b=178//45 | ||||
| >>> c=-24.6//12.1 | ||||
| >>> type(b) | ||||
| <class 'int'> | ||||
| >>> type(c)  | ||||
| <class 'float'> | ||||
| >>> b | ||||
| 3 | ||||
| >>> c | ||||
| -3.0 | ||||
| d = 24.6//3 | ||||
| type(d) | ||||
| <class 'float'>  | ||||
| d = 24//3.6 | ||||
| type(d) | ||||
| <class 'float'> | ||||
| ``` | ||||
| Переменная приобретает вещественный тип, если при операции деления есть хотя бы одно вещественное значение. | ||||
| 
 | ||||
| ### 4.5. Остаток от деления: | ||||
| 
 | ||||
| ```py | ||||
| >>> 148%33 | ||||
| 16 | ||||
| >>> 12.6%3.8 | ||||
| 1.2000000000000002 | ||||
| >>> 148.3%33 | ||||
| 16.30000000000001 | ||||
| >>> 148%33.3 | ||||
| 14.800000000000011 | ||||
| ``` | ||||
| 
 | ||||
| ### 4.6. Возведение в степень: | ||||
| 
 | ||||
| ```py | ||||
| >>> 14**3 | ||||
| 2744 | ||||
| >>> e=2.7**3.6 | ||||
| >>> e | ||||
| 35.719843790663525 | ||||
| ``` | ||||
| 
 | ||||
| #### Повторим предложенные операции, но уже с комплексными числами: | ||||
| 
 | ||||
| ```py | ||||
| >>> po = 10 + 10j | ||||
| >>> ac = 20 + 20j | ||||
| >>> po + ac | ||||
| (30+30j) | ||||
| >>> po - ac | ||||
| (-10-10j) | ||||
| >>> po * ac | ||||
| 400j | ||||
| po / ac | ||||
| (0.5+0j) | ||||
| po//ac | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#33>", line 1, in <module> | ||||
|     po//ac | ||||
| TypeError: unsupported operand type(s) for //: 'complex' and 'complex' | ||||
| po%ac | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#34>", line 1, in <module> | ||||
|     po%ac | ||||
| TypeError: unsupported operand type(s) for %: 'complex' and 'complex' | ||||
| po**ac | ||||
| (1.4066000837528672e+16-6347426866104395j) | ||||
| ``` | ||||
| Важно заметить, что операции деления с округлением вниз и определения остатка провести нельзя! | ||||
| 
 | ||||
| ## 5. Двоичное представление чисел. | ||||
| 
 | ||||
| ### 5.1. Двойная инверсия  | ||||
| 
 | ||||
| ```py | ||||
| >>>dv1=9 | ||||
| >>>dv2=~dv1 | ||||
| >>>dv2 | ||||
| -10 | ||||
| ``` | ||||
| 
 | ||||
| ### 5.2. Двоичное 'И'. | ||||
| 
 | ||||
| ```py | ||||
| >>>7&9    | ||||
| 1 | ||||
| >>>7&8     | ||||
| 0 | ||||
| ``` | ||||
| 
 | ||||
| ### 5.3. Двоичное "ИЛИ" | ||||
| 
 | ||||
| ```py | ||||
| >>>7|9    | ||||
| 15 | ||||
| >>>7|8   | ||||
| 15 | ||||
| >>>14|5   | ||||
| 15 | ||||
| ``` | ||||
| 
 | ||||
| ### 5.4 Двоичное исключающее "ИЛИ" | ||||
| 
 | ||||
| 
 | ||||
| ```py | ||||
| >>>14^5   | ||||
| 11 #десятичное | ||||
| >>> bin(11)  | ||||
| '0b1011' #двоичное | ||||
| ``` | ||||
| 
 | ||||
| ### 5.5 Сдвиг двоичного представления влево и вправо. | ||||
| 
 | ||||
| ```py | ||||
| >>>h=14    | ||||
| >>>g=h<<2  | ||||
| >>>g | ||||
| 56 | ||||
| >>>g1=h>>1   | ||||
| >>>g1 | ||||
| 7 | ||||
| >>>g2=h>>2  | ||||
| >>>g2 | ||||
| 3 | ||||
| ``` | ||||
| 
 | ||||
| ### 5.6. Действия с двумя двоичными числами | ||||
| 
 | ||||
| ```py | ||||
| a = 0b10110101 | ||||
| b = 0b01101011 | ||||
| c=~a | ||||
| bin(c) | ||||
| '-0b10110110' | ||||
| bin(a&b) | ||||
| '0b100001' | ||||
| bin(a|b) | ||||
| '0b11111111' | ||||
| bin(a^b) | ||||
| '0b11011110' | ||||
| d=a<<2 | ||||
| bin(d) | ||||
| '0b1011010100' | ||||
| e=b>>2 | ||||
| bin(e) | ||||
| '0b11010' | ||||
| ``` | ||||
| 
 | ||||
| ## 6. Последовательности. | ||||
| 
 | ||||
| ### 6.1. Объединение. | ||||
| 
 | ||||
| ```py | ||||
| >>>'Система '+'регулирования'  #Соединение двух строк символов | ||||
| 'Система регулирования' | ||||
| >>>['abc','de','fg']+['hi','jkl']  # Объединение двух списков | ||||
| ['abc', 'de', 'fg', 'hi', 'jkl'] | ||||
| >>>('abc','de','fg')+('hi','jkl')  # Объединение двух кортежей | ||||
| ('abc', 'de', 'fg', 'hi', 'jkl') | ||||
| ``` | ||||
| ### 6.2. Повторение. | ||||
| 
 | ||||
| ```py | ||||
| >>>'ля-'*5   #Повторение строки 5 раз | ||||
| 'ля-ля-ля-ля-ля-' | ||||
| >>>['ку','-']*3 #Повторение списка 3 раза | ||||
| ['ку', '-', 'ку', '-', 'ку', '-'] | ||||
| >>>('кис','-')*4  #Повторение кортежа 4 раза | ||||
| ('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-') | ||||
| >>>signal1=[0]*3+[1]*99 | ||||
| >>>signal2=(0,)*3+(1,)*5+(0,)*7 | ||||
| >>>signal1 | ||||
| [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] | ||||
| >>>signal2 | ||||
| (0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0) | ||||
| ``` | ||||
| ### 6.3 Проверка наличия. | ||||
| 
 | ||||
| ```py | ||||
| >>>stroka='Система автоматического управления' | ||||
| >>>'автомат' in stroka  #Наличие подстроки в строке | ||||
| True | ||||
| >>>'ку' in ['ку','-']*3  #Наличие контекста в списке | ||||
| True | ||||
| >>>'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')  #Наличие контекста в кортеже | ||||
| False | ||||
| ``` | ||||
| 
 | ||||
| ### 6.4. Подстановка значений. | ||||
| 
 | ||||
| ```py | ||||
| >>>stroka='Температура = %g %s  %g' | ||||
| >>>stroka % (16,' меньше ',25) | ||||
| 'Температура = 16  меньше   25' | ||||
| >>>stroka='Температура = %(zn1)g %(sravn)s  %(zn2)g' | ||||
| >>>stroka % {'zn1':16,'sravn':' меньше ','zn2':25} | ||||
| 'Температура = 16  меньше   25' | ||||
| ``` | ||||
| 
 | ||||
| ## 7. Изучение оператора присваивания.  | ||||
| 
 | ||||
| ### 7.1 - 7.3. Обычное присваивание, увеличение, умножение и деление соответственно. | ||||
| 
 | ||||
| ```py | ||||
| >>> zz=-12 | ||||
| 
 | ||||
| >>> zz+=5 | ||||
| >>> zz | ||||
| -7 | ||||
| >>> zz-=3 | ||||
| >>> zz | ||||
| -10 | ||||
| 
 | ||||
| >>> stroka='Система' | ||||
| >>> stroka+=' регулирования' | ||||
| >>> stroka | ||||
| 'Система регулирования' | ||||
| 
 | ||||
| >>> zz/=2 #деление на текущую величину | ||||
| >>> zz*=5 | ||||
| >>> zz | ||||
| -25.0 | ||||
| 
 | ||||
| >>> zzz = 12 | ||||
| >>> zzz *=12 #повторение | ||||
| >>> zzz | ||||
| 144 | ||||
| ``` | ||||
| ### 7.4. Деление с округлением вниз, остаток от деления и возведение в степень. | ||||
| 
 | ||||
| ```py | ||||
| >>> chislo = 10 | ||||
| >>> chislo //=5 | ||||
| >>> chislo | ||||
| 2 | ||||
| 
 | ||||
| >>> chislo = 10 | ||||
| >>> chislo %=3 | ||||
| >>> chislo | ||||
| 1 | ||||
| 
 | ||||
| >>> chislo = 10 | ||||
| >>> chislo **=2 | ||||
| >>> chislo | ||||
| 100 | ||||
| 
 | ||||
| ``` | ||||
| ### 7.5 Присваивание | ||||
| 
 | ||||
| ```py | ||||
| >>> w=v=10 | ||||
| >>> n1,n2,n3=(11,-3,'all') | ||||
| >>> n1 | ||||
| 11 | ||||
| >>> n2 | ||||
| -3 | ||||
| >>> n3 | ||||
| 'all' | ||||
| >>> w, v | ||||
| (10, 10) | ||||
| 
 | ||||
| n1,n2,n3="all" #из строки | ||||
| n1 | ||||
| 'a' | ||||
| n2 | ||||
| 'l' | ||||
| n3 | ||||
| 'l' | ||||
| n1,n2,n3=[11,-3,'all']  #из списка | ||||
| n1 | ||||
| 11 | ||||
| n2 | ||||
| -3 | ||||
| n3 | ||||
| 'all' | ||||
| n1,n2,n3 = {"a": 11, "b": -3, "c": "all"} #из словаря (ключи) | ||||
| n1 | ||||
| 'a' | ||||
| n2 | ||||
| 'b' | ||||
| n3 | ||||
| 'c' | ||||
| r = {"a": 11, "b": -3, "c": "all"} #из словаря (значения) | ||||
| n1,n2,n3 = r.values() | ||||
| n1 | ||||
| 11 | ||||
| n2 | ||||
| -3 | ||||
| n3 | ||||
| 'all' | ||||
| n1,n2,n3 = {11, -3, 'all'} #из множества(порядок не гарантирован) | ||||
| n1 | ||||
| 11 | ||||
| n2 | ||||
| -3 | ||||
| n3 | ||||
| 'all' | ||||
| ``` | ||||
| 
 | ||||
| ## 8. Логические операции. | ||||
| 
 | ||||
| ### 8.1. Операции сравнения: | ||||
| 
 | ||||
| ```py | ||||
| >>> w==v #равенство | ||||
| True | ||||
| 
 | ||||
| >>> w!=v #неравенство | ||||
| False | ||||
| 
 | ||||
| >>> 9<10 #меньше | ||||
| True | ||||
| 
 | ||||
| >>> 9>10 #больше | ||||
| False | ||||
| 
 | ||||
| >>> w<=v #меньше или равно | ||||
| True | ||||
| 
 | ||||
| >>> w>=v #больше или равно | ||||
| True | ||||
| ``` | ||||
| 
 | ||||
| ### 8.2. Проверка наличия  | ||||
| 
 | ||||
| ```py | ||||
| >>> mnoz1={'pen','book','pen','iPhone','table','book'} #работа с множеством | ||||
| >>> 'book' in mnoz1 | ||||
| True | ||||
| >>> 'cap' in mnoz1 | ||||
| False | ||||
| 
 | ||||
| >>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45} #работа со словарем | ||||
| >>> 'Vologda' in dic1 | ||||
| True | ||||
| >>> 'Pskov' in dic1 | ||||
| False | ||||
| >>> 56 in dic1.values() | ||||
| True | ||||
| >>> dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']} | ||||
| >>> 'UII' in dct1['Depart'] | ||||
| True | ||||
| >>> dct1['Depart'][1] == 'MM' | ||||
| False | ||||
| ``` | ||||
| ### 8.3. Большие лог. выражения | ||||
| 
 | ||||
| ```py | ||||
| >>> a=17 | ||||
| >>> b=-6 | ||||
| >>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) | ||||
| True | ||||
| 
 | ||||
| not (a==b) and not ('Moscow' in dic1) and  not ('iPhone' in mnoz1) | ||||
| False | ||||
| 
 | ||||
| not (a==b) and not ('Moscow' in dic1) and  not ('XIAOMI' in mnoz1) | ||||
| True | ||||
| ``` | ||||
| 
 | ||||
| ### 8.4. Ссылки переменных. | ||||
| 
 | ||||
| ```py | ||||
| >>> w=v=10 | ||||
| >>> w is v | ||||
| True | ||||
| >>> v is w | ||||
| True | ||||
| >>> w1=['A','B'];v1=['A','B']    | ||||
| >>> w1, v1 | ||||
| (['A', 'B'], ['A', 'B']) | ||||
| >>> w1 is v1 | ||||
| False | ||||
| >>> v1 is w1 | ||||
| False | ||||
| ``` | ||||
| А всё потому что оператор is проверяет, являются ли переменные одним и тем же объектом в памяти, а не то, одинаковые ли у них значения. Пример ниже: | ||||
| 
 | ||||
| ```py | ||||
| >>> v1 = w1 | ||||
| >>> v1 is w1 | ||||
| True | ||||
| >>> w1=['A','B'];v1=['A','B'] | ||||
| >>> w1==v1 | ||||
| True | ||||
| >>> w1 is v1 | ||||
| False | ||||
| ``` | ||||
| 
 | ||||
| ## 9. Методы. | ||||
| 
 | ||||
| Просмотрим список всех атрибутов объекта: | ||||
| ```py | ||||
| >>> stroka='Микропроцессорная система управления';dir(stroka) | ||||
| ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] | ||||
| ``` | ||||
| 
 | ||||
| ### 9.1. Методы в строках. | ||||
| 
 | ||||
| ```py | ||||
| >>> stroka.find('пр') | ||||
| 5 | ||||
| >>> stroka.count("с") | ||||
| 4 | ||||
| >>> stroka.replace(' у',' автоматического у') | ||||
| 'Микропроцессорная система автоматического управления' | ||||
| >>> spis22=stroka.split(' ') | ||||
| >>> spis22 | ||||
| ['Микропроцессорная', 'система', 'управления'] | ||||
| >>> stroka.upper() | ||||
| 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' | ||||
| >>> stroka3=" ".join(spis22) | ||||
| >>> stroka3.partition("с") | ||||
| ('Микропроце', 'с', 'сорная система управления') | ||||
| stroka3.partition("с") | ||||
| ('Микропроце', 'с', 'сорная система управления') | ||||
| stroka3.rpartition("с") | ||||
| ('Микропроцессорная си', 'с', 'тема управления') | ||||
| ``` | ||||
| 
 | ||||
| #### Метод format. | ||||
|   | ||||
| ```py | ||||
| >>> strk1='Момент времени {}, значение = {}' | ||||
| >>> strk1.format(1,89.7) | ||||
| 'Момент времени 1, значение = 89.7' | ||||
| 
 | ||||
| >>> strk2='Момент времени {1}, значение = {0}:{2}' | ||||
| >>> strk2.format(36.7,2,'норма!') | ||||
| 'Момент времени 2, значение = 36.7:норма!' | ||||
| 
 | ||||
| >>> strk3='Момент времени {num}, значение = {znch}' | ||||
| >>> strk3.format(znch=89.7,num=2) | ||||
| 'Момент времени 2, значение = 89.7' | ||||
| ``` | ||||
| ### 9.2. Методы в списках | ||||
| 
 | ||||
| ```py | ||||
| >>> spsk = ['kfc','mcdonalds','burgerking','teremok',20] | ||||
| >>> type(spsk) | ||||
| <class 'list'> | ||||
| >>> 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) #удаление элемента из списка | ||||
| 'burgerking' | ||||
| >>> spsk | ||||
| ['kfc', 'mcdonalds', 'teremok', 20] | ||||
| >>> spsk.append('c') #добавление нового элемента в конец списка | ||||
| >>> spsk | ||||
| ['kfc', 'mcdonalds', 'teremok', 20, 'c'] | ||||
| >>> spsk.insert(2,'a') #добавление элемента на место под определенным индексом | ||||
| >>> spsk | ||||
| ['kfc', 'mcdonalds', 'a', 'teremok', 20, 'c'] | ||||
| >>> spsk.count('a') #пересчёт элементов 'a' в списке | ||||
| 1 | ||||
| ``` | ||||
| ### 9.3. Методы кортежа. | ||||
| 
 | ||||
| ```py | ||||
| 
 | ||||
| >>> kortezh = (1, 2, 3, 4) | ||||
| >>> type(kortezh) | ||||
| <class 'tuple'> | ||||
| >>> dir(kortezh) | ||||
| ['__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'] | ||||
| 
 | ||||
| >>> kortezh.count(1) #подсчёт элемента '1' | ||||
| 1 | ||||
| >>> kortezh.index(4) #выводит индекс заданного элемента | ||||
| 3 | ||||
| ``` | ||||
| 
 | ||||
| ### 9.4 Методы словаря и кортежа. | ||||
| 
 | ||||
| #### Словарь. | ||||
| ```py | ||||
| >>> slovar = {'A':1, 'B':2, 'C':3} | ||||
| >>> type(slovar) | ||||
| <class 'dict'> | ||||
| d | ||||
| >>> dir(slovar) | ||||
| ['__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'] | ||||
| 
 | ||||
| 
 | ||||
| >>> slovar.pop('A') #удаление элемента | ||||
| 1 | ||||
| >>> slovar | ||||
| {'B': 2, 'C': 3} | ||||
| >>> slovar.items() | ||||
| dict_items([('B', 2), ('C', 3)]) | ||||
| 
 | ||||
| >>> slovar.keys() | ||||
| dict_keys(['B', 'C']) | ||||
| >>> slovar.values() | ||||
| dict_values([2, 3]) | ||||
| 
 | ||||
| #### Множество.  | ||||
| 
 | ||||
| ```py | ||||
| >>> mno = {1, 2, 3, 4} | ||||
| >>> type(mno) | ||||
| <class 'set'> | ||||
| >>> dir(mno) | ||||
| ['__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'] | ||||
| 
 | ||||
| 
 | ||||
| >>> mno.add(5) #добавление | ||||
| >>> mno | ||||
| {1, 2, 3, 4, 5} | ||||
| 
 | ||||
| >>> mno.remove(5) #удаление | ||||
| >>> mno | ||||
| {1, 2, 3, 4} | ||||
| 
 | ||||
| >>> mno.clear() #очищение | ||||
| >>> mno | ||||
| set() | ||||
| 
 | ||||
| ```  | ||||
| 
 | ||||
| ## 10. Конец сеанса работы с IDLE. | ||||
| 
 | ||||
| @ -0,0 +1,78 @@ | ||||
| # Общее контрольное задание по теме 3 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: | ||||
| 
 | ||||
|  • Преобразовать восьмеричное значение 45 в целое число. | ||||
| 
 | ||||
|  • Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка? | ||||
| 
 | ||||
|  • Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4. | ||||
| 
 | ||||
|  • Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево. | ||||
| 
 | ||||
|  • Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка. | ||||
| 
 | ||||
| • Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов. | ||||
| 
 | ||||
|  • Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки.  Заменить в списке элемент «-» на «,».  Удалить из списка элемент со значением  «данного». Отобразить получившийся список. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| >>>a = int("45", 8) | ||||
| >>>a | ||||
| 37 | ||||
| 
 | ||||
| >>>D={"усиление":23, "запаздывание":12, "постоянная времени":78} | ||||
| >>>spis1=list(D) | ||||
| >>>spis1 | ||||
| ['усиление', 'запаздывание', 'постоянная времени'] | ||||
| >>>spis2=list(D.values()) | ||||
| >>>spis2 | ||||
| [23, 12, 78] | ||||
| >>>kor=tuple(spis1)+tuple(spis2) #Список отличается от кортежа тем, что список изменяем, а кортеж нет. | ||||
| >>>kor | ||||
| ('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78) | ||||
| 
 | ||||
| >>>((1768//24.8)%3)**2.4 | ||||
| 5.278031643091577 | ||||
| 
 | ||||
| >>>((~(13&27))^14)<<2 | ||||
| -32 | ||||
| >>>spis3=["колебат", "колебат", "колебат",  "колебат" ] | ||||
| >>>'аткол' in spis3[1] + spis3[2] | ||||
| True | ||||
| 
 | ||||
| >>>dir(D) | ||||
| ['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] | ||||
| >>>help(D.keys) | ||||
| Help on built-in function keys: | ||||
| 
 | ||||
| keys() method of builtins.dict instance | ||||
|     Return a set-like object providing a view on the dict's keys. | ||||
| 
 | ||||
| >>>help(D.values) | ||||
| Help on built-in function values: | ||||
| 
 | ||||
| values() method of builtins.dict instance | ||||
|     Return an object providing a view on the dict's values. | ||||
| 
 | ||||
| >>>D.keys() #Этот метод отображает ключи словаря | ||||
| dict_keys(['усиление', 'запаздывание', 'постоянная времени']) | ||||
| >>>D.values() #Этот метод отображает знаечния словаря | ||||
| dict_values([23, 12, 78]) | ||||
| 
 | ||||
| >>>S="Создать объект - символьную строку с текстом данного предложения" | ||||
| >>>L=list(S.split()) | ||||
| >>>L | ||||
| ['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] | ||||
| >>>L[L.index("-")] = "," | ||||
| >>>L | ||||
| ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения'] | ||||
| >>>L.remove("данного") | ||||
| >>>L | ||||
| ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] | ||||
| ``` | ||||
| @ -0,0 +1,50 @@ | ||||
| # Тест по модулю 1 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| 
 | ||||
| M1_6 | ||||
| 
 | ||||
| 1) Как расшифровывается аббревиатура IDLE? Какую роль играет эта компонента в среде программирования Python? | ||||
| 
 | ||||
| 2) Создайте объект-словарь с 3 элементами, в которых ключами являются строки с названиями профессий, а значениями - списки с элементами: средняя зарплата по соответствующей профессии, вероятность устроиться на работу и возможность профессионального роста (логическое значение). Значения придумайте самостоятельно. | ||||
| 
 | ||||
| 3) Создайте объект-строку с названием одной из профессий и напишите инструкцию, позволяющую для этого объекта определить из словаря список с ее характеристиками. | ||||
| 
 | ||||
| 4) Напишите инструкцию, создающую на основе словаря список со значениями средних зарплат по представленным в словаре профессиям. | ||||
| 
 | ||||
| 5) Напишите инструкцию, вычисляющую среднюю вероятность трудоустройства по представленным в словаре профессиям. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| 1) IDLE - Integrated Development and Learning Environment. Роль заключается в том, чтобы использовать эту компоненту с целью обучения и разработки в среде Python. | ||||
| 
 | ||||
| 2) | ||||
| ```py  | ||||
| >>> professia = {'программист':[5000,0.6,True], 'учитель':[35000,0.8,True], 'президент':[10000000, 0.1, False]} | ||||
| ``` | ||||
| 
 | ||||
| 3) | ||||
| ```py | ||||
| >>> krasava = 'президент' | ||||
| >>> print(professia[krasava]) | ||||
| [10000000, 0.1, False] | ||||
| ``` | ||||
| 
 | ||||
| 4) | ||||
| ```py | ||||
| >>> cash = [professia['программист'][0], professia['учитель'][0], professia['президент'][0]] | ||||
| >>> type(cash) | ||||
| <class 'list'> | ||||
| >>> cash | ||||
| [5000, 35000, 10000000] | ||||
| ``` | ||||
| 
 | ||||
| 5) | ||||
| ```py | ||||
| >>> prob = [professia['программист'][1], professia['учитель'][1], professia['президент'][1]] | ||||
| >>> sred_prob = sum(prob)/len(prob) | ||||
| >>> sred_prob | ||||
| 0.5  | ||||
| ``` | ||||
| @ -0,0 +1,378 @@ | ||||
| # Отчёт по теме 4 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## 2. Стандартные функции. Находятся в модуле builtins, который становится доступным без импорта при запуске среды IDLE. | ||||
| 
 | ||||
| ### 2.1. Функция round – округление числа с заданной точностью.  | ||||
| ```py | ||||
| round(123.456,1) | ||||
| 123.5 | ||||
| round(123.456,0) | ||||
| 123.0 | ||||
| type(round(123.456,1)) | ||||
| <class 'float'> | ||||
| type(round(123.456,0)) | ||||
| <class 'float'> | ||||
| type(123.0) | ||||
| <class 'float'> | ||||
| type(123.5) | ||||
| <class 'float'> | ||||
| round(123.456) | ||||
| 123 | ||||
| type(123) | ||||
| <class 'int'> | ||||
| type(round) | ||||
| <class 'builtin_function_or_method'> | ||||
| ``` | ||||
| 
 | ||||
| ### 2.2. Функция range – создание последовательности целых чисел с заданным шагом или, по умолчанию, с шагом 1. | ||||
| ```py | ||||
| gg=range(76,123,9) #генерирует числа, начиная с 76 и прибавляя 9, пока не достигнет числа, которое больше или равно 123 (правая граница включена не будет) | ||||
| type(gg) | ||||
| <class 'range'> | ||||
| list(gg) #чтоб его увидеть, необходимо преобразовать в другой тип | ||||
| [76, 85, 94, 103, 112, 121] | ||||
| range(23) #функция создаст последовательность чисел от 0 до 22 включительно с шагом 1 | ||||
| range(0, 23) | ||||
| ``` | ||||
| ### 2.3. Функция zip – создание общего объекта, элементами которого являются кортежи, составленные из  элементов двух или более объектов-последовательностей. Длина результирующего объекта равна длине самого короткого объекта из двух аргументов функции. | ||||
| ```py | ||||
| qq=["Ефремов", "Добровольска", "Снегура", "Туровец"] | ||||
| list(gg) | ||||
| [76, 85, 94, 103, 112, 121] | ||||
| ff=zip(gg,qq) #образуется итерируемый объект, просмотреть без преобразования типа не получится | ||||
| ff | ||||
| <zip object at 0x00000203B0C7EF40> | ||||
| type(ff) #количество элементов-кортежей в объекте определяется размерностью меньшего объекта  | ||||
| <class 'zip'> | ||||
| tuple(ff)  | ||||
| ((76, 'Ефремов'), (85, 'Добровольска'), (94, 'Снегура'), (103, 'Туровец')) | ||||
| ff[1]  #объект ff, возвращаемый функцией zip, является итератором. У итераторов нет метода __getitem__, который позволяет обращаться к элементам по индексу. Попытка сделать это вызовет ошибку TypeError. | ||||
| Traceback (most recent call last): | ||||
|   File "<pyshell#21>", line 1, in <module> | ||||
|     ff[1] | ||||
| TypeError: 'zip' object is not subscriptable | ||||
| c= list(zip(gg, qq)) #для обращения по индексу можно преобразовать в другой тип  | ||||
| c[0] | ||||
| (76, 'Ефремов') | ||||
| ``` | ||||
| ### 2.4. Функция eval – вычисление значения выражения, корректно записанного на языке Python и пред-ставленного в виде символьной строки.  | ||||
| ```py | ||||
| fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') | ||||
| коэффициент усиления=4 | ||||
| dan | ||||
| -136.0 | ||||
| ``` | ||||
| 
 | ||||
| ### 2.5. Функция exec – чтение и выполнение объекта-аргумента функции. Этот объект должен представлять собой строку символов  с совокупностью инструкций на языке Python.  | ||||
| ```py | ||||
| exec(input('введите инструкции:'))  | ||||
| введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)  | ||||
| gg | ||||
| 221.456 | ||||
| ``` | ||||
| ### 2.6. Самостоятельно изучите и попробуйте применить функции abs, pow, max, min, sum, divmod, len, map. | ||||
| ```py | ||||
| abs(-5) #модуль | ||||
| 5 | ||||
| ``` | ||||
| ```py | ||||
| len('Длина строки') | ||||
| 12 | ||||
| ``` | ||||
| ```py | ||||
| max(2,3,4) | ||||
| 4 | ||||
| ``` | ||||
| ```py | ||||
| min(2,3,4) | ||||
| 2 | ||||
| ``` | ||||
| ```py | ||||
| pow(2,3) | ||||
| 8 | ||||
| ``` | ||||
| ```py | ||||
| >>> a=(5,10,7) | ||||
| >>> sum(a) | ||||
| 22 | ||||
| 
 | ||||
| >>>list(map(lambda x: x*2, [1, 2, 3, 4])) | ||||
| [2, 4, 6, 8] | ||||
| 
 | ||||
| >>>divmod(7, 2) | ||||
| (3, 1) | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| ## 3. Функции из стандартного модуля math – совокупность разнообразных математических функций. | ||||
| ```py | ||||
| import math | ||||
| dir(math) | ||||
| ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fma', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp'] | ||||
| help(math.factorial) | ||||
| Help on built-in function factorial in module math: | ||||
| 
 | ||||
| factorial(n, /) | ||||
|     Find n!. | ||||
| 
 | ||||
| math.factorial(5) | ||||
| 120 | ||||
| math.sin(1.57) #из радиан в значение синуса | ||||
| 0.9999996829318346 | ||||
| math.acos(1) #из значения косинуса в радианы | ||||
| 0.0 | ||||
| math.degrees(1) #из радиан в градусы | ||||
| 57.29577951308232 | ||||
| math.exp(2) #e в степени 2 | ||||
| 7.38905609893065 | ||||
| math.log(10) #натуральный логарифм по основанию e | ||||
| 2.302585092994046 | ||||
| math.log(8, 2) #логарифм 8 по основанию 2 | ||||
| 3.0 | ||||
| math.log10(10) #логарифм 10 по основанию 10 | ||||
| 1.0 | ||||
| math.sqrt(4) | ||||
| 2.0 | ||||
| math.ceil(2.3) #наименьшее целое число, большее или равное 2.3(округление вверх) | ||||
| 3 | ||||
| math.ceil(-2.3) | ||||
| -2 | ||||
| math.floor(2.3) #округление вниз | ||||
| 2 | ||||
| math.floor(-2.3) | ||||
| -3 | ||||
| math.pi | ||||
| 3.141592653589793 | ||||
| math.sin((2*math.pi/7)+math.exp(0.23)) | ||||
| 0.8334902641414562 | ||||
| ``` | ||||
| 
 | ||||
| ## 4.	Функции из модуля cmath – совокупность функций для работы с комплексными числами. | ||||
| ```py | ||||
| import cmath | ||||
| dir(cmath) | ||||
| ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau'] | ||||
| cmath.sqrt(1.2-0.5j) #квадратный корень из комплексного числа | ||||
| (1.118033988749895-0.22360679774997896j) | ||||
| cmath.phase(1-0.5j) #расчета фазы | ||||
| -0.4636476090008061 | ||||
| ``` | ||||
| ## 5. Стандартный модуль random – совокупность функций для выполнения операций с псевдослучайными числами и выборками. | ||||
| ### 5.1. | ||||
| ```py | ||||
| import random | ||||
| dir(random) | ||||
| ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] | ||||
| help(random.seed) | ||||
| Help on method seed in module random: | ||||
| 
 | ||||
| seed(a=None, version=2) method of random.Random instance | ||||
|     Initialize internal state from a seed. | ||||
| 
 | ||||
|     The only supported seed types are None, int, float, | ||||
|     str, bytes, and bytearray. | ||||
| 
 | ||||
|     None or no argument seeds from current time or from an operating | ||||
|     system specific randomness source if available. | ||||
| 
 | ||||
|     If *a* is an int, all bits are used. | ||||
| 
 | ||||
|     For version 2 (the default), all of the bits are used if *a* is a str, | ||||
|     bytes, or bytearray.  For version 1 (provided for reproducing random | ||||
|     sequences from older versions of Python), the algorithm for str and | ||||
|     bytes generates a narrower range of seeds. | ||||
| # Установка начального значения для воспроизводимости | ||||
| random.seed(42)  # Фиксируем seed для одинаковых результатов | ||||
| #random() - равномерное распределение [0, 1) | ||||
| random.random() | ||||
| 0.6394267984578837 | ||||
| # uniform(a, b) - равномерное распределение [a, b] | ||||
| random.uniform(5, 15) | ||||
| 5.25010755222667 | ||||
| # randint(a, b) - случайное целое [a, b] | ||||
| random.randint(1, 100) | ||||
| 36 | ||||
| # gauss(mu, sigma) - нормальное распределение | ||||
| random.gauss(0, 1) # центр распределения;стандартное отклонение | ||||
| 0.017593105583573694 | ||||
| # choice(sequence) - случайный выбор | ||||
| a=[1,2,3,4,5,6,7] | ||||
| random.choice(a) | ||||
| 1 | ||||
| # shuffle(sequence) - перемешивание | ||||
| random.shuffle(a) | ||||
| a | ||||
| [4, 2, 3, 1, 5, 7, 6] | ||||
| # sample(population, k) - выборка без повторений | ||||
| random.sample(range(100), 5) | ||||
| [4, 3, 11, 27, 29] | ||||
| # betavariate(alpha, beta) - бета-распределение | ||||
| random.betavariate(2, 5) #где альфа и бета - параметры формы | ||||
| 0.3918844780644009 | ||||
| # gammavariate(alpha, beta) - гамма-распределение | ||||
| random.gammavariate(2, 1) | ||||
| 2.219353519271194 | ||||
| ``` | ||||
| 
 | ||||
| ### 5.2. Создание списка с 4 случайными значениями | ||||
| ```py | ||||
| random_values = [ | ||||
|     random.uniform(0, 10), #равномерное распределение [0, 10) | ||||
|     random.gauss(50, 10), #нормальное распределение (м.о.=50, с.о.=10) | ||||
|     random.betavariate(2, 5), #бета-распределение (alpha=2, beta=5) | ||||
|     random.gammavariate(3, 2) #гамма-распределение (alpha=3, beta=2) | ||||
| ] | ||||
| random_values | ||||
| [5.892656838759088, 55.47961646339978, 0.5314696353281997, 2.163791803055314] | ||||
| nazvania = [ | ||||
|     "равномерное [0, 10)", | ||||
|     "nормальное (mu=50, SIGMA=10)", | ||||
|     "бета (alpha=2, beta=5)", | ||||
|     "гамма (alpha=3, beta=2)" | ||||
| ] | ||||
| list(zip(random_values, nazvania)) | ||||
| [(5.52040631273227, 'равномерное [0, 10)'), (48.36023998393615, 'nормальное (mu=50, SIGMA=10)'), (0.3513506341781665, 'бета (alpha=2, beta=5)'), (3.4766245452081708, 'гамма (alpha=3, beta=2)')] | ||||
| ``` | ||||
| 
 | ||||
| ## 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() #функция time возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г. | ||||
| c1 | ||||
| 1760885547.2719448 | ||||
| c2=time.time()-c1 #временной интервал в секундах, со времени ввода предыдущей инструкции | ||||
| c2 | ||||
| 41.91496253013611 | ||||
| dat=time.gmtime() #вывод полной информацию о текущем времени. Функция возвращает (UTC). Московское время MSK опережает UTC на 3 часа | ||||
| dat | ||||
| time.struct_time(tm_year=2025, tm_mon=10, tm_mday=19, tm_hour=14, tm_min=54, tm_sec=29, tm_wday=6, tm_yday=292, tm_isdst=0) | ||||
| dat.tm_mon | ||||
| 10 | ||||
| dat.tm_year | ||||
| 2025 | ||||
| dat.tm_mday | ||||
| 19 | ||||
| dat.tm_hour | ||||
| 14 | ||||
| dat.tm_min | ||||
| 55 | ||||
| dat.tm_sec | ||||
| 30 | ||||
| dat.tm_wday #День недели - четверг (дни недели: 0=понедельник, 1=вторник, 2=среда, 3=четверг, 4=пятница, 5=суббота, 6=воскресенье) | ||||
| 6 | ||||
| dat.tm_yday #День года - 292-й день в году (считая с 1 января = 1) | ||||
| 292 | ||||
| dat.tm_isdst #Летнее время - не действует (0 = зимнее время, 1 = летнее время, -1 = неизвестно) | ||||
| 0 | ||||
| ``` | ||||
| ```py | ||||
| time.localtime() #Получение местного времени | ||||
| time.struct_time(tm_year=2025, tm_mon=10, tm_mday=19, tm_hour=17, tm_min=58, tm_sec=49, tm_wday=6, tm_yday=292, tm_isdst=0) | ||||
| time.asctime() #Получение текущего времени, представление времени из кортежа в строку | ||||
| 'Sun Oct 19 17:59:18 2025' | ||||
| time.ctime() #Преобразование времени в секундах, прошедшего с начала эпохи, в строку | ||||
| 'Sun Oct 19 17:59:35 2025' | ||||
| time.sleep(3) #Прерывание работы программы на заданное время(3 секунды) | ||||
| time_tuple = (2025, 1, 2, 3, 4, 5, 6, 222, 0) | ||||
| time_obj = time.struct_time(time_tuple) | ||||
| time_obj | ||||
| time.struct_time(tm_year=2025, tm_mon=1, tm_mday=2, tm_hour=3, tm_min=4, tm_sec=5, tm_wday=6, tm_yday=222, tm_isdst=0) | ||||
| seconds = time.mktime(time_obj) #Преобразование времени из типа кортежа или struct_time в число секунд с начала эпохи | ||||
| seconds | ||||
| 1735776245.0 | ||||
| back_to_time = time.localtime(seconds) #Обратное преобразование | ||||
| back_to_time | ||||
| time.struct_time(tm_year=2025, tm_mon=1, tm_mday=2, tm_hour=3, tm_min=4, tm_sec=5, tm_wday=3, tm_yday=2, tm_isdst=0) | ||||
| ``` | ||||
| 
 | ||||
| ## 7. Графические функции. | ||||
| 
 | ||||
| ### Построение графиков | ||||
| ```py | ||||
| import pylab | ||||
| x=list(range(-3,55,4)) | ||||
| t=list(range(15)) | ||||
| pylab.plot(t,x)  #Создание графика в оперативной памяти | ||||
| [<matplotlib.lines.Line2D object at 0x0000027668162490>] | ||||
| pylab.title('Первый график') | ||||
| Text(0.5, 1.0, 'Первый график') | ||||
| pylab.xlabel('время') | ||||
| Text(0.5, 0, 'время') | ||||
| pylab.ylabel('сигнал') | ||||
| Text(0, 0.5, 'сигнал') | ||||
| pylab.show() #Отображение графика на экране | ||||
| ``` | ||||
|  | ||||
| 
 | ||||
| ```py | ||||
| X1=[12,6,8,10,7] | ||||
| X2=[5,7,9,11,13] | ||||
| pylab.plot(X1) | ||||
| [<matplotlib.lines.Line2D object at 0x0000027669976C10>] | ||||
| pylab.plot(X2) | ||||
| [<matplotlib.lines.Line2D object at 0x0000027669976D50>] | ||||
| pylab.show() | ||||
| ``` | ||||
|  | ||||
| 
 | ||||
| ### Построение круговой диаграммы | ||||
| ```py | ||||
| region=['Центр','Урал','Сибирь','Юг'] | ||||
| naselen=[65,12,23,17] | ||||
| pylab.pie(naselen,labels=region) | ||||
| ([<matplotlib.patches.Wedge object at 0x00000160BCB69BE0>, <matplotlib.patches.Wedge object at 0x00000160BD497390>, <matplotlib.patches.Wedge object at 0x00000160BD497750>, <matplotlib.patches.Wedge object at 0x00000160BD4979D0>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')]) | ||||
| pylab.show() | ||||
| ``` | ||||
|  | ||||
| ### Построение гистаграммы | ||||
| ```py | ||||
| grades = [85, 92, 78, 65, 90, 85, 88, 72, 95, 81, 85, 90, 78, 85, 92] | ||||
| pylab.hist(grades, bins=5, edgecolor='black', alpha=0.7, color='skyblue') | ||||
| (array([1., 1., 3., 5., 5.]), array([65., 71., 77., 83., 89., 95.]), <BarContainer object of 5 artists>) | ||||
| pylab.title('Гистограмма распределения оценок') | ||||
| Text(0.5, 1.0, 'Гистограмма распределения оценок') | ||||
| pylab.xlabel('Оценки') | ||||
| Text(0.5, 0, 'Оценки') | ||||
| pylab.ylabel('Частота') | ||||
| Text(0, 0.5, 'Частота') | ||||
| pylab.grid(axis='y', alpha=0.75) | ||||
| pylab.show() | ||||
| ``` | ||||
|  | ||||
| 
 | ||||
| ### Построение столбчатой диаграммы | ||||
| ```py | ||||
| categories = ['A', 'B', 'C', 'D', 'F'] | ||||
| values = [3, 7, 8, 2, 1] | ||||
| pylab.bar(categories, values, color=['red', 'orange', 'yellow', 'green', 'blue'], alpha=0.7) | ||||
| <BarContainer object of 5 artists> | ||||
| pylab.title('Столбчатая диаграмма распределения по категориям') | ||||
| Text(0.5, 1.0, 'Столбчатая диаграмма распределения по категориям') | ||||
| pylab.xlabel('Категории') | ||||
| Text(0.5, 0, 'Категории') | ||||
| pylab.ylabel('Количество') | ||||
| Text(0, 0.5, 'Количество') | ||||
| pylab.grid(axis='y', alpha=0.75) | ||||
| pylab.show() | ||||
| ``` | ||||
|  | ||||
| ## 8. Модуль statistics. | ||||
| ```py | ||||
| # Данные для статистического анализа | ||||
| data = [23, 45, 67, 34, 89, 56, 72, 41, 58, 64, 39, 51, 47, 62, 55] | ||||
| import statistics | ||||
| mean_value = statistics.mean(data) #нахождение среднего | ||||
| mean_value | ||||
| 53.53333333333333 | ||||
| median_value = statistics.median(data) #нахождение медианы | ||||
| median_value | ||||
| 55 | ||||
| dat = [1, 1, 1, 2, 3, 4, 5, 6, 7] | ||||
| mode_value = statistics.mode(dat) #нахождение моды | ||||
| mode_value | ||||
| 1 | ||||
| ``` | ||||
| ## 9. Конец сеанса работы c IDLE. | ||||
| После Ширина: | Высота: | Размер: 15 KiB | 
| После Ширина: | Высота: | Размер: 64 KiB | 
| После Ширина: | Высота: | Размер: 56 KiB | 
| После Ширина: | Высота: | Размер: 47 KiB | 
| После Ширина: | Высота: | Размер: 40 KiB | 
| @ -0,0 +1,78 @@ | ||||
| # Общее контрольное задание по теме 4 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| 
 | ||||
| Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия: | ||||
| 
 | ||||
| •	Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.  | ||||
| 
 | ||||
| •	Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами. | ||||
| 
 | ||||
| •	Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.  | ||||
| 
 | ||||
| •	Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3. | ||||
| 
 | ||||
| •	Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита. | ||||
| 
 | ||||
| •	Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| # Комплексное число и операции | ||||
| import math | ||||
| import cmath | ||||
| import time | ||||
| import random | ||||
| 
 | ||||
| tup = tuple(math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3) | ||||
| print(tup) | ||||
| (8, 2.6000000000000014) | ||||
| 
 | ||||
| # Текущее московское время | ||||
| 
 | ||||
| moscow_time = time.time() | ||||
| moscow_time | ||||
| 1760944817.0515099 | ||||
| mos_real = moscow_time+3*3600 | ||||
| mos_real = time.gmtime(mos_real) | ||||
| mos_real | ||||
| time.struct_time(tm_year=2025, tm_mon=10, tm_mday=20, tm_hour=10, tm_min=20, tm_sec=17, tm_wday=0, tm_yday=293, tm_isdst=0) | ||||
| 
 | ||||
| current_time_str = str(mos_real.tm_hour)+" h "+str(mos_real.tm_min)+" min " | ||||
| current_time_str | ||||
| '10 h 20 min ' | ||||
| 
 | ||||
| # Случайная выборка дней недели | ||||
| 
 | ||||
| dni = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вск'] | ||||
| random_days = random.sample(dni, 3) | ||||
| random_days | ||||
| ['вт', 'пт', 'вск'] | ||||
| 
 | ||||
| # Случайный выбор числа из последовательности | ||||
| 
 | ||||
| chiselki = list(range(14, 33, 3)) | ||||
| randomchik = random.choice(chiselki) | ||||
| randomchik | ||||
| 20 | ||||
| 
 | ||||
| # Генерация нормально распределенного числа и списка букв | ||||
| 
 | ||||
| N = round(random.gauss(15, 4)) | ||||
| N | ||||
| 18 | ||||
| import string #азбука. подписаться | ||||
| random.sample(string.ascii_letters, N) | ||||
| ['g', 'y', 'r', 'D', 'O', 'x', 'k', 'U', 'w', 'n', 'X', 'e', 'M', 'T', 'I', 'p', 'N', 'W'] | ||||
| 
 | ||||
| # Временной интервал в минутах | ||||
| 
 | ||||
| interval = math.floor((time.time()+3*3600 - (moscow_time+3*3600))/60) | ||||
| interval | ||||
| 7 | ||||
| intervalchik = (time.gmtime(time.time()+3*3600 - (moscow_time+3*3600))).tm_min + (time.gmtime(time.time()+3*3600 - (moscow_time+3*3600))).tm_hour * 60 | ||||
| intervalchik | ||||
| 9 | ||||
| ``` | ||||
| @ -0,0 +1,20 @@ | ||||
| # Индивидуальное контрольное задание по теме 4 | ||||
| 
 | ||||
| Ефремов Станислав, А-02-23 | ||||
| 
 | ||||
| ## Задание | ||||
| Вариант - 9 | ||||
| Напишите инструкцию, позволяющую определить и записать в переменную календарные характеристики (год, месяц, день) момента, отстоящего на 7000000 сек. вперед от текущего времени.  Выведите эти сведения в виде строки вида: «Это будет ХХ-ХХ-ХХХХ». Создайте множество с 5 случайными целыми элементами, значения которых находятся в диапазоне значений от 1 до 12. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| >>> fut = time.gmtime(time.time()+3*3600+7000000)       | ||||
| >>> fut     | ||||
| time.struct_time(tm_year=2026, tm_mon=1, tm_mday=9, tm_hour=12, tm_min=5, tm_sec=34, tm_wday=4, tm_yday=9, tm_isdst=0) | ||||
| >>> print(f'Это будет {fut.tm_mday}-{fut.tm_mon}-{fut.tm_year}' ) | ||||
| Это будет 9-1-2026 | ||||
| >>> mn = set(random.sample(range(1,13),5))     | ||||
| >>> print(mn) | ||||
| {1, 2, 3, 5, 12} | ||||
| ``` | ||||