Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
09.08.2021
Размер:
205.64 Кб
Скачать

Python, ПОАС, ОКЗ, ИКЗ и протокол по теме 3

#Общее контрольное задание по Теме 3

>>>int('0o45',8)

37

>>>D={"усиление":23, "запаздывание":12, "постоянная времени":78}

>>>spis1=list(D)

>>>spis2=list(D.values())

>>>kort=tuple(spis1+spis2)

>>>kort

('постоянная времени', 'запаздывание', 'усиление', 78, 12, 23)

#Кортеж отличается от списка тем, что кортеж нельзя изменять, а список можно.

>>>((1768//24.8)%3)**2.4

5.278031643091577

#При делении 1768 на 24.8 с округлением вниз получается 71. Остаток от деления 71 на 3 равен 2. Возведение остатка в степень 2.4 дает представленный результат.

>>>((~(13&27))^14)<<2

-32

# 13 в двоичной системе: 1101, 27: 11011. Результат после операции И в двоичном виде: '0b1001', после операции НЕ: '- 0b1010' (при замене 0 на 1 и наоборот в числе, а также прибавлении к последнему разряду 1 получится 110, что соответствует -1010). Число 14 в двоичной системе: 1110. Результат после операции исключающее ИЛИ в двоичном виде: '- 0b1000' (если значения разрядов совпадают, то получается 0, иначе 1), после сдвига на 2 разряда влево: '-0b100000'. В десятичном виде это число -32.

>>> spis=['колебат','колебат', 'колебат', 'колебат']

>>>'аткол' in spis[1]+spis[2]

True

#В результате конкатенации второго и третьего элементов списка образуется строка 'колебатколебат', в которую входит комбинация символов 'аткол'.

>>>dir(D)

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

>>> D.keys()

dict_keys(['постоянная времени', 'запаздывание', 'усиление'])

>>> D.values() dict_values([78, 12, 23])

#С помощью методов keys и values можно получить ключи и значения словаря соответственно.

>>>stroka='Создать объект - символьную строку с текстом данного предложения'

>>>spisn=stroka.split(' ')

>>>spisn[2]=','

>>>spisn.pop(7)

'данного'

>>> spisn

['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.']

#Индивидуальное контрольное задание по Теме 3

#Пункт 1

#Запустить на выполнение программу, исходный код которой находится в текстовом файле, можно открыв окно оболочки IDLE, выбрав из главного меню File, из выпадающего списка выбрать Open и открыть нужный текстовый файл, затем запустить на выполнение, нажав Run -> Run module.

#Пункт 2 fr=('яблоко','груша','апельсин','гранат','мандарин','киви') type(fr)

dir(fr)

#Пункт 3 fr2=fr[3::]+('фейхоа','маракуйя') fr2

fr2.index('фейхоа')

#Пункт 4 sp=list(fr2) fr3=tuple(sp) fr3

fr2==fr3

1

#Пункт 5 st=' '.join(fr3) st st.index('киви')

#Протокол по Теме 3

#Пункт 2.1

>>>logiz1=bool(56)

>>>logiz1

True

>>>type(logiz1) <class 'bool'>

>>>logiz2=bool(0)

>>>logiz2

False

>>>type(logiz2) <class 'bool'>

>>>logiz3=bool("Deta")

>>>logiz3

True

>>>type(logiz3) <class 'bool'>

>>>logiz4=bool("")

>>>logiz4

False

>>>type(logiz4) <class 'bool'>

#Пункт 2.2

>>>tt1=int(198.6)

>>>tt1

198

>>>type(tt1) <class 'int'>

>>>tt2=int("-76")

>>>tt2

-76

>>>type(tt2) <class 'int'>

>>>tt3=int("B",16)

>>>tt3

11

>>>type(tt3) <class 'int'>

>>>tt4=int("71",8)

>>>tt4

57

>>>type(tt4) <class 'int'>

>>>tt5=int("98.76")

Traceback (most recent call last):

File "<pyshell#51>", line 1, in <module> tt5=int("98.76")

ValueError: invalid literal for int() with base 10: '98.76'

#При выполнени последней инструкции выдано диагностическое сообщение, так как функция int() осуществляет преобразование к целому числу, однако аргумент функции "98.76" - это символьная строка, содержащая точку, приведение которой к целому числу невозможно.

>>>flt1=float(789)

>>>flt1

789.0

>>>type(flt1) <class 'float'>

>>>flt2=float(-6.78e2)

>>>flt2

-678.0

>>> type(flt2)

2

<class 'float'>

>>>flt3=float("Infinity")

>>>flt3

inf

>>>type(flt3) <class 'float'>

>>>flt4=float("-inf")

>>>flt4

-inf

>>>type(flt4) <class 'float'>

#Пункт 2.3

>>>hh=123

>>>dv1=bin(hh)

>>>dv1

'0b1111011'

>>>type(dv1) <class 'str'>

>>>vos1=oct(hh)

>>>vos1

'0o173'

>>>type(vos1) <class 'str'>

>>>shs1=hex(hh)

>>>shs1

'0x7b'

>>>type(shs1) <class 'str'>

>>>hh1=int(dv1,2)

>>>hh1

123

>>>type(hh1) <class 'int'>

>>>hh2=int(vos1,8)

>>>hh2

123

>>>type(hh2) <class 'int'>

>>>hh3=int(shs1,16)

>>>hh3

123

>>>type(hh3) <class 'int'>

#Пункт 3.1

>>>strk1=str(23.6)

>>>strk1

'23.6'

>>>type(strk1) <class 'str'>

>>>strk2=str(logiz3)

>>>strk2

'True'

>>>type(strk2) <class 'str'>

>>>strk3=str(["A","B","C"])

>>>strk3

"['A', 'B', 'C']"

>>>type(strk3) <class 'str'>

>>>strk4=str(("A","B","C"))

>>>strk4

"('A', 'B', 'C')"

>>>type(strk4) <class 'str'>

>>>strk5=str({"A":1,"B":2,"C":9})

3

>>> strk5

"{'A': 1, 'B': 2, 'C': 9}"

>>>type(strk5) <class 'str'>

#Пункт 3.2

>>>spis1=list("Строка символов")

>>>spis1

['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в']

>>>type(spis1) <class 'list'>

>>>spis2=list((124,236,-15,908))

>>>spis2

[124, 236, -15, 908]

>>>type(spis2) <class 'list'>

>>>spis3=list({"A":1,"B":2,"C":9})

>>>spis3

['A', 'B', 'C']

>>>type(spis3) <class 'list'>

#В spis3 содержатся ключи словаря.

>>>spis4=list({"A":1,"B":2,"C":9}.values())

>>>spis4

[1, 2, 9]

>>>type(spis4) <class 'list'>

#В spis4 содержатся значения словаря.

#Пункт 3.3

>>>kort7=tuple('Строка символов')

>>>kort7

('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')

>>>type(kort7) <class 'tuple'>

>>>kort8=tuple(spis2)

>>>kort8

(124, 236, -15, 908)

>>>type(kort8) <class 'tuple'>

>>>kort9=tuple({"A":1,"B":2,"C":9})

>>>kort9

('A', 'B', 'C')

>>>type(kort9) <class 'tuple'>

#Пункт 3.4

>>>del strk5,kort8

>>>dir()

['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'hh1', 'hh2', 'hh3', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'shs1', 'sp_kw', 'spis1', 'spis2', 'spis3', 'spis4', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1']

#Объектов strk5, kort8 нет в оперативной памяти.

>>>famstr="FIO"

>>>famspis=list(famstr)

>>>famspis

['F', 'I', 'O']

>>>famkort=tuple(famspis)

>>>famkort

('F', 'I', 'O')

>>>famstr2=str(famkort)

>>>famstr2

"('F', 'I', 'O')"

#Конечная строка famstr2 не совпадает с исходной famstr.

>>>famstr3=''.join(famkort)

>>>famstr3

'FIO'

#Конечная строка famstr3 совпадает с исходной famstr.

4

#Пункт 4.1

>>>12+7+90

109

>>>5.689e-1 - 9.495 -8.9261

>>>23.6+54

77.6

>>>14-56.7+89

46.3

#Пункт 4.2

>>>-6.7*12

-80.4

#Пункт 4.3

>>> -234.5/6 -39.083333333333336

>>>a=178/45

>>>a 3.9555555555555557

>>>type(a)

<class 'float'>

#a - вещественное число (float)

#Пункт 4.4

>>>b=178//45

>>>b

3

>>>type(b) <class 'int'>

#b - целое число (int)

>>>c=-24.6//12.1

>>>c

-3.0

>>>type(c) <class 'float'>

#с - вещественное число (float)

>>>type(d)

<class 'float'>

#d - вещественное число (float)

>>>g=31.3//3

>>>g

10.0

>>>type(g) <class 'float'>

#g - вещественное число (float)

#Пункт 4.5

>>>148%33

16

>>>12.6%3.8

1.2000000000000002

>>>13%4.1

0.7000000000000011

>>>12.1%2

0.09999999999999964

#Пункт 4.6

>>>14**3

2744

>>>e=2.7**3.6

>>>e 35.719843790663525

>>>12**1.5

41.569219381653056

>>>1.2**5

2.4883199999999994

#С комплексными числами можно выполнять: сложение, вычитание, умножение, деление, возведение в степень. Нельзя выполнять: деление с округлением вниз, получение остатка от деления. Примеры:

>>>compl1=5+3j

5

>>>compl2=4-2j

>>>compl1+compl2

(9+1j)

>>>compl1-compl2 (1+5j)

>>>compl1*compl2

(26+2j)

>>>compl1*2.3

(11.5+6.8999999999999995j)

>>>compl1/compl2

(0.7+1.1j)

>>>compl1/2.3

(2.173913043478261+1.3043478260869565j)

>>>compl1**2.3

(18.579933443864938+54.63019765720115j)

>>>compl1**compl2

(697.2490701839818-3334.794955893417j)

>>> compl1//2.3

Traceback (most recent call last):

File "<pyshell#196>", line 1, in <module> compl1//2.3

TypeError: can't take floor of complex number.

#Диагностика, так как нельзя выполнять деление с округлением вниз с комплексными числами.

>>> compl1//compl2

Traceback (most recent call last):

File "<pyshell#197>", line 1, in <module> compl1//compl2

TypeError: can't take floor of complex number.

#Диагностика, так как нельзя выполнять деление с округлением вниз с комплексными числами.

>>> compl1%2.3

Traceback (most recent call last):

File "<pyshell#198>", line 1, in <module> compl1%2.3

TypeError: can't mod complex numbers.

#Диагностика, так как нельзя выполнять операцию получения остатка от деления с комплексными числами.

>>>compl1%compl2 Traceback (most recent call last):

File "<pyshell#199>", line 1, in <module> compl1%compl2

TypeError: can't mod complex numbers.

#Диагностика, так как нельзя выполнять операцию получения остатка от деления с комплексными числами.

#Пункт 5.1

>>>dv1=9

>>>dv2=~dv1

>>>dv2

-10

>>>bin(dv1)

'0b1001'

>>>bin(dv2) '-0b1010'

#Пункт 5.2

>>>7&9

1

>>>7&8

0

#Пункт 5.3

>>>7|9

15

>>>bin(15)

'0b1111'

>>>7|8

15

>>> 14|5 15

#Пункт 5.4

6

>>>14^5

11

>>>bin(11)

'0b1011'

#В десятичном представлении получилось значение 11.

#Пункт 5.5

>>>h=14

>>>bin(h)

'0b1110'

>>>g=h<<2

>>>bin(g)

'0b111000'

>>>g1=h>>1

>>>bin(g1)

'0b111'

>>>g2=h>>2

>>>bin(g2)

'0b11'

>>>h=-17

>>>bin(h)

'-0b10001'

>>> hn=h>>2

>>>hn

-5

>>>bin(hn) '-0b101'

#Число h=-17 в двоичном виде (так как число отрицательное, в 00010001 меняем 0 на 1 и наоборот, к последнему разряду прибавляем 1): 11101111. При сдвиге на 2 разряда вправо получается: 11111011. Или в другом виде: вычтем 1 из последнего разряда и произведем обратную замену 1 на 0 и наоборот: 11111010 -> отрицательное значение 00000101 -> -0b101. В десятичном виде это число -5.

>>>dvn1=0b1000001

>>>dvn2=0b1001011

>>>dvn3=~dvn1

>>>bin(dvn3)

'-0b1000010'

>>>bin(dvn1&dvn2)

'0b1000001'

>>>bin(dvn1|dvn2)

'0b1001011'

>>>bin(dvn1^dvn2)

'0b1010'

>>>bin(dvn1>>1)

'0b100000'

>>>bin(dvn1<<1)

'0b10000010'

#Пункт 6.1

>>>'Система '+'регулирования' 'Система регулирования'

>>>['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl']

>>>('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl')

#Пункт 6.2

>>>'ля-'*5

'ля-ля-ля-ля-ля-'

>>> ['ку','-']*3 ['ку', '-', 'ку', '-', 'ку', '-']

>>> ('кис','-')*4 ('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')

>>>signal1=[0]*3+[1]*99

>>>signal1

[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

>>>signal2=(0,)*3+(1,)*5+(0,)*7

>>>signal2

7

(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)

#Пункт 6.3

>>>stroka='Система автоматического управления'

>>>'автомат' in stroka

True

>>>'ку' in ['ку','-']*3

True

>>>'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False

#Пункт 6.4

>>>stroka='Температура = %g %s %g'

>>>stroka % (16,' меньше ',25)

'Температура = 16 меньше 25'

>>>stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'

>>>stroka % {'zn1':16,'sravn':' меньше ','zn2':25}

'Температура = 16 меньше 25'

#Пункт 7.1

>>>zz=-12

>>>zz

-12

#Пункт 7.2

>>>zz+=5

>>>zz

-7

>>>zz-=3

>>>zz

-10

>>>stroka='Система'

>>>stroka+=' регулирования'

>>>stroka

'Система регулирования'

#Пункт 7.3

>>>zz/=2

>>>zz

-5.0

>>>zz*=5

>>>zz

-25.0

>>>stroka*=2

>>>stroka

'Система регулированияСистема регулирования'

#Пункт 7.4

>>>zzn=12

>>>zzn//=5

>>>zzn

2

#12/5=2.4, а с округлением вниз: 2.

>>> zzn%=1.5

>>> zzn 0.5

#Остаток от деления 2 на 1.5 равен 0.5.

>>> zzn**=2

>>> zzn 0.25

#0.5 в степени 2 равно 0.25.

#Пункт 7.5

>>>w=v=10

>>>w

10

>>>v

10

>>>n1,n2,n3=(11,-3,'all')

>>>n1

11

>>> n2

8

-3

>>>n3

'all'

>>>n1,n2,n3="1as"

>>>n1

'1'

>>>n2

'a'

>>>n3

's'

#Справа можно использовать строку, если количество символов в ней совпадает с числом переменных.

>>>n1,n2,n3=[11,-4,'all']

>>>n1

11

>>>n2

-4

>>>n3

'all'

#Справа можно использовать список.

>>>n1,n2,n3={11,-5,'all'}

>>>n1

-5

>>>n2

11

>>>n3

'all'

#Справа можно использовать множество, но элементы множества необязательно будут присвоены переменным в указанном порядке.

>>>n1,n2,n3={'a':11,'b':-6,'c':'all'}

>>>n1

'a'

>>>n2

'b'

>>>n3

'c'

>>>n1,n2,n3={'a':11,'b':-6,'c':'all'}.values()

>>>n1

11

>>>n2

-6

>>>n3

'all'

#Справа можно использовать словарь.

#Пункт 8.1

>>>'стр'=="стр"

True

>>>'стр'!="Стр"

True

>>>-20>-2 False

>>>-20<-2

True

>>>'стр'<="строка"

True

>>>'стр'>="стр"

True

>>>w==v

True

#Пункт 8.2

>>>mnoz1={'pen','book','pen','iPhone','table','book'}

>>>'book' in mnoz1

True

>>>'cap' in mnoz1 False

>>>dic1={'Saratov':145, 'Orel':56, 'Vologda':45}

9

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

>>>a=17

>>>b=-6

>>>(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)

True

>>>(a<=b) or ('book' in mnoz1) or ('Pskov' in mnoz1)

True

>>>(a<=b) or ('book' in mnoz1) and not ('Pskov' in dic1)

True

>>>(a<=b) or ('book' in mnoz1) and ('Pskov' in dic1) False

#Пункт 8.4

>>>w=v=10

>>>w is v

True

>>>w1=['A','B']

>>>v1=['A','B']

>>>w1 is v1 False

#Оператор is используют для проверки: ссылаются переменные на один и тот же объект или нет. После применения операции множественного присваивания w=v=10 переменные w, v ссылаются на один объект 10, поэтому результатом применения is является True. Значения переменным w1, v1 задаются при помощи простого присваивания, при этом образуются ссылки на два отдельных одинаковых по значению объекта, однако так как переменные w1, v1 ссылаются на разные объекты, результатом применения is является False.

#Пункт 9

>>>stroka='Микропроцессорная система управления'

>>>dir(stroka)

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__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', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

#Пункт 9.1

>>>stroka.find('пр')

5

>>>stroka.count("с")

4

>>>stroka.replace(' у',' автоматического у')

'Микропроцессорная система автоматического управления'

>>>spis22=stroka.split(' ')

>>>spis22

['Микропроцессорная', 'система', 'управления']

>>> stroka.upper()

'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'

>>>stroka3=" ".join(spis22)

>>>stroka3

'Микропроцессорная система управления'

>>> stroka3.partition("с")

('Микропроце', 'с', 'сорная система управления')

>>> stroka3.rpartition("с") ('Микропроцессорная си', 'с', 'тема управления')

>>> strk1='Момент времени {}, значение = {}'

10

Соседние файлы в папке Лабораторные_Python