diff --git a/TEMA3/report.md b/TEMA3/report.md index 702c4c7..4bc4bb9 100644 --- a/TEMA3/report.md +++ b/TEMA3/report.md @@ -42,7 +42,7 @@ Traceback (most recent call last): tt5=int("98.76") ValueError: invalid literal for int() with base 10: '98.76' ``` -Значение tt5 не может быть преобразовано командой tt5, т.к. хоть и представлено в виде строки, но всё равно относится к вещественным числам. +Значение tt5 не может быть преобразовано командой вида int(), т.к. хоть и представлено в виде строки, но всё равно относится к вещественным числам. #### Преобразование с помощью функции float @@ -66,13 +66,13 @@ inf ```py >>> hh=123 ->>> dv1=bin(hh) - двоичное +>>> dv1=bin(hh) #двоичное >>> dv1 '0b1111011' ->>> vos1=oct(hh) - восьмиричное +>>> vos1=oct(hh) #восьмиричное >>> vos1 '0o173' ->>> shs1=hex(hh) - шестнадцатеричное +>>> shs1=hex(hh) #шестнадцатеричное >>> shs1 '0x7b' ``` @@ -86,3 +86,365 @@ inf >>> 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 "", line 1, in + 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) + +``` + +## 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) + +``` +Тип полученной переменной является вещественным. + +### 4.4. Округление вниз(//). + +```py +>>> b=178//45 +>>> c=-24.6//12.1 +>>> type(b) + +>>> type(c) + +>>> b +3 +>>> c +-3.0 +d = 24.6//3 +type(d) + +d = 24//3.6 +type(d) + +``` +Переменная приобретает вещественный тип, если при операции деления есть хотя бы одно вещественное значение. + +### 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 "", line 1, in + po//ac +TypeError: unsupported operand type(s) for //: 'complex' and 'complex' +po%ac +Traceback (most recent call last): + File "", line 1, in + 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 +``` + +???????????????????????????????????? + +## 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) +``` +??????????????????????????????????? + +## 8. Логические операции. + + +