Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

22 KiB

Отчет по теме 2

Румянцев Вадим, А-03-23

2. Базовые типы объектов

2.1 Настройка текущего каталога

import os
os.chdir('D:\\Уник\\5 семестр\\Программное обеспечение автоматизированных систем\\python-labs\\TEMA2\\')
os.getcwd()
'D:\\Уник\\5 семестр\\Программное обеспечение автоматизированных систем\\python-labs\\TEMA2'

2.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__', '__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__', '__dddddddddddddrrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
type(f2)
<class 'int'>
del f1,f2
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']

2.3 Изучение правил объектов в Python

gg1=1.6  #значение в виде вещественного числа
hh1='Строка'  #значение в виде символьной строки
73sr=3   #неправильное имя – начинается с цифры - будет диагностика!
SyntaxError: invalid decimal literal
and=7     #недопустимое имя – совпадает с ключевым словом - будет диагностика!
SyntaxError: invalid syntax

2.4 Вывод списка ключевых слов с помощью инструкций

import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
keywords = keyword.kwlist
keywords
['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']

2.5.1 Вывод списка встроенных идентификаторов с помощью инструкций

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']

2.5.2 Изучение значения функций

help (abs)
Help on built-in function abs in module builtins:

abs(x, /)
    Return the absolute value of the argument.

help(len)
Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

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 positional arguments, return the largest argument.

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 positional arguments, return the smallest argument.

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.

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.

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.

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.

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
 |  shortest argument is exhausted.
 |
 |  If strict is true and one of the arguments is exhausted before the others,
 |  raise a ValueError.
 |
 |     >>> list(zip('abcdefg', range(3), range(4)))
 |     [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
 |
 |  Methods defined here:
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __next__(self, /)
 |      Implement next(self).
 |
 |  __reduce__(self, /)
 |      Return state information for pickling.
 |
 |  __setstate__(self, object, /)
 |      Set state information for unpickling.
 |
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |
 |  __new__(*args, **kwargs)
 |      Create and return a new object.  See help(type) for accurate signature.

2.6 Убедимся, что язык чувствителен к регистру

Ggl=45
Ggl;ggl
45
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    Ggl;ggl
NameError: name 'ggl' is not defined. Did you mean: 'Ggl'?

2.7 Изучение простых базовых типов объектов

2.7.1 Логический тип (bool)

bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)    #функция, показывающая тип (класс) объекта
<class 'bool'>

2.7.2 Другие простые типы

ii1=-1234567890
ff1=-8.9876e-12  #экспоненциальная форма записи вещественного числа
dv1=0b1101010 #Это – двоичное число. В объекте какого класса оно сохранено?
type(dv1)
<class 'int'>
vsm1=0o52765   #Это – восьмеричное число
shest1=0x7109af6  #Это – шестнадцатеричное число
cc1=2-3j
a=3.67; b=-0.45
cc2=complex(a,b)  #Создается комплексное число
cc2
(3.67-0.45j)

2.7.3 Строка символов

ss1='Это - строка символов'
ss1
'Это - строка символов'
ss1="Это - строка символов"
ss1
'Это - строка символов'
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
ss1a
'Это - " строка символов ", \n \t выводимая на двух строках'
print(ss1a)
Это - " строка символов ", 
 	 выводимая на двух строках
ss1b= 'Меня зовут: \n <Румянцев В. А.>'
print(ss1b)
Меня зовут: 
 <Румянцев В. А.>
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""

print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
ss1[0]   #Это – символ «Э»
'Э'
ss1[8]  #А это – символ «р»
'р'
ss1[-2]  #А это – символ «о» (при знаке «-»(минус) отсчет от конца строки)
'о'
ss1[6:9]  #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!)
'стр'
ss1[13:]  #Это часть строки – с 13-го индекса и до конца
'символов'
ss1[:13]  #Это часть строки – с начала и до 12-го индекса включительно
'Это - строка '
ss1[5:-8]  #Это часть строки – с 5-го индекса и до 8-го от конца
' строка '
ss1[3:17:2]  #Часть строки – с 3-го по 16-й индексы с шагом 2
'  тоасм'
ss1[17:3:-2]
'омсаот '
ss1[-4:3:-2]
'омсаот '
ss1[4]='='  # Будет диагностика!
Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    ss1[4]='='  # Будет диагностика!
TypeError: 'str' object does not support item assignment
ss1=ss1[:4]+'='+ss1[5:]
ss1
'Это = строка символов'

2.7.4 Создание срезов из переменной ss1b

ss1b[0]
'М'
ss1b[0:20:4]
'М у\nу'
ss1b=ss1b[:10]+':'+'\n <'+ss1b[11:-1]+'>'
ss1b[0:16:4]
'М у '

2.7.5 Создание объектов разных типов

# 1. Целое число (int)
integer_obj = 42
# 2. Вещественное число (float)
float_obj = 3.14
# 3. Строка (str)
string_obj = "Hello, World!"
# 4. Логический тип (bool)
bool_obj = True

2.8 Изучение объектов более сложних типов

2.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]
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1)
3
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']
[111, 'Список', (5-9j), 'New item', 'New item']
spis1.pop(1)
'Список'
spis1
[111, (5-9j), 'New item']
spis1.append(ss1b)
spis1
[111, (5-9j), 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>']
help(insert)
         
Traceback (most recent call last):
  File "<pyshell#127>", line 1, in <module>
    help(insert)
NameError: name 'insert' is not defined
help(spis1.insert)
         
Help on built-in function insert:

insert(index, object, /) method of builtins.list instance
    Insert object before index.

help(spis1.remove)
         
Help on built-in function remove:

remove(value, /) method of builtins.list instance
    Remove first occurrence of value.

    Raises ValueError if the value is not present.

help(spis1.extend)
         
Help on built-in function extend:

extend(iterable, /) method of builtins.list instance
    Extend list by appending elements from the iterable.

help(spis1.clear)
         
Help on built-in function clear:

clear() method of builtins.list instance
    Remove all items from list.

help(spis1.sort)
         
Help on built-in function sort:

sort(*, key=None, reverse=False) method of builtins.list instance
    Sort the list in ascending order and return None.

    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
    order of two equal elements is maintained).

    If a key function is given, apply it once to each list item and sort them,
    ascending or descending, according to their function values.

    The reverse flag can be set to sort in descending order.

help(spis1.sort)
         
Help on built-in function sort:

sort(*, key=None, reverse=False) method of builtins.list instance
    Sort the list in ascending order and return None.

    The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
    order of two equal elements is maintained).

    If a key function is given, apply it once to each list item and sort them,
    ascending or descending, according to their function values.

    The reverse flag can be set to sort in descending order.

help(spis1.reverse)
         
Help on built-in function reverse:

reverse() method of builtins.list instance
    Reverse *IN PLACE*.

help(spis1.copy)
         
Help on built-in function copy:

copy() method of builtins.list instance
    Return a shallow copy of the list.

help(spis1.count)
         
Help on built-in function count:

count(value, /) method of builtins.list instance
    Return number of occurrences of value.

help(spis1.index)
         
Help on built-in function index:

index(value, start=0, stop=9223372036854775807, /) method of builtins.list instance
    Return first index of value.

    Raises ValueError if the value is not present.

spis2=[spis1,[4,5,6,7]]
         
spis2
         
[[111, (5-9j), 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>'], [4, 5, 6, 7]]
spis2[0][1]
         
(5-9j)
spis2[0][1]=78
         
spis2
         
[[111, 78, 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>'], [4, 5, 6, 7]]
spis1
         
[111, 78, 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>']
# Элементы списка spis1 отличаются от изначально заданных т.к. список  spis2 состоит из списка spis1 и списка [4, 5, 6, 7].
         
# При изменении списка spis2, а именно списка spis1, меняется изначальное значение элемента списка spis2 - spis1.
         
myspis=[52, 'shjdfbshjidf', True, spis1]
         
myspis
         
[52, 'shjdfbshjidf', True, [111, 78, 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>']]

2.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 < \n <Румянцев В. А.>')
kort1.index(2)  # Будет получено значение 3
         
4
#Получено 4 т.к. ss1b был изменен
         
kort1.count(222)   #Будет получено значение 1
         
1
kort1[2]=90
         
Traceback (most recent call last):
  File "<pyshell#159>", line 1, in <module>
    kort1[2]=90
TypeError: 'tuple' object does not support item assignment

2.8.2.1 Создание своего кортежа

mykort=(222, 'rtgeh', myspis, kort1)
         
mykort
         
(222, 'rtgeh', [52, 'shjdfbshjidf', True, [111, 78, 'New item', 'Меня зовут:\n < \n <Румянцев В. А.>']], (222, 'Kortezh', (77+8j),
1, 2, 'Меня зовут:\n < \n <Румянцев В. А.>'))

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={'statistics':dic2,'POAS':['base','elementary','programming']}
         
dic3
         
{'statistics': {1: 'mean', 2: 'standart deviation', 3: 'correlation'}, 'POAS': ['base', 'elementary', 'programming']}
dic3['statistics'][2]
         
'standart deviation'
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 < \n <Румянцев В. А.>'}
dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b]))
         
dic5
         
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут:\n < \n <Румянцев В. А.>'}
my_tuple = ("яблоко", "банан", "апельсин", "виноград", "киви", "манго", "груша")
         
my_list = [10, 20, 30, 40, 50]
         
print("Кортеж (7 элементов):", my_tuple)
         
Кортеж (7 элементов): ('яблоко', 'банан', 'апельсин', 'виноград', 'киви', 'манго', 'груша')
print("Список (5 элементов):", my_list)
         
Список (5 элементов): [10, 20, 30, 40, 50]
result_dict = dict(zip(my_tuple, my_list))
         
result_dict
         
{'яблоко': 10, 'банан': 20, 'апельсин': 30, 'виноград': 40, 'киви': 50}
# Функция Zip объединяет илементы из нескольких последовательностей.
         
# Когда самая короткая последовательность заканчивается, функция прекращает свою работу

2.8.4 Создание объекта-множества

mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
         
mnoz1
         
{'двигатель', 'микропроцессор', 'датчик', 'линия связи'}
len(mnoz1)
         
4
'датчик' in mnoz1
         
True
mnoz1.add('реле')
         
mnoz1
         
{'двигатель', 'датчик', 'микропроцессор', 'линия связи', 'реле'}
mnoz1.remove('линия связи')
         
mnoz1
         
{'двигатель', 'датчик', 'микропроцессор', 'реле'}

2.8.4.1 Создание собственного объекта-множества

mymnoz = { 1, 'computer', my_tuple}
         
mymnoz
         
{('яблоко', 'банан', 'апельсин', 'виноград', 'киви', 'манго', 'груша'), 1, 'computer'}
mymnoz.add('system')
         
mymnoz
         
{('яблоко', 'банан', 'апельсин', 'виноград', 'киви', 'манго', 'груша'), 1, 'system', 'computer'}
mymnoz.remove(my_tuple)
         
mymnoz
         
{1, 'system', 'computer'}