ответвлено от main/python-labs
Сделал до пункта 8
Этот коммит содержится в:
448
TEMA3/report.md
448
TEMA3/report.md
@@ -532,4 +532,450 @@ print((5-9j)**(2+5j))
|
||||
|
||||
**Можно комплексное число возвести в комплексную степень.**
|
||||
|
||||
***Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее наиболее сложный тип из тех типов, которые участвуют в операции.***
|
||||
***Нетрудно заметить, что в результате операции над числами разных типов получается число, имеющее наиболее сложный тип из тех типов, которые участвуют в операции.***
|
||||
|
||||
## 4. Операции с двоичными представлениями целых чисел.
|
||||
|
||||
### 4.1. Двоичная инверсия (~). Значение каждого бита в представлении числа заменяется на противоположное значение (0 на 1, 1 на 0).
|
||||
|
||||
```python
|
||||
dv1=9
|
||||
dv2=~dv1
|
||||
print(bin(dv1))
|
||||
print(bin(dv2))
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
0b1001
|
||||
-0b1010
|
||||
```
|
||||
|
||||
### 4.2. Двоичное «И» (&) – побитовое совпадение двоичных представлений чисел.
|
||||
|
||||
```python
|
||||
print(bin(7&9)) # 111 и 1001 = 0001
|
||||
print(bin(7&8)) # 111 и 1000 = 0000
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
0b1
|
||||
0b0
|
||||
```
|
||||
|
||||
### 4.3. Двоичное «ИЛИ» (|) – побитовое сравнение двоичных представлений чисел и 0 получается, только если оба сравниваемых разряда равны 0.
|
||||
|
||||
```python
|
||||
print(bin(7|9)) # 111 или 1001 = 1111
|
||||
print(bin(7|8)) # 111 или 1000 = 1111
|
||||
print(bin(14|5)) # 1110 или 0101 = 1111
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
0b1111
|
||||
0b1111
|
||||
0b1111
|
||||
```
|
||||
|
||||
### 4.4. Двоичное «исключающее ИЛИ»(^) - побитовое сравнение двоичных представлений чисел и 0 получается, только если оба сравниваемых разряда имеют одинаковые значения – оба 0 или оба 1.
|
||||
|
||||
```python
|
||||
print(bin(14^5)) # 1110 исключающее или 0101 = 1011
|
||||
print(f"В десятичном представлении: {14^5}")
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
0b1011
|
||||
В десятичном представлении: 11
|
||||
```
|
||||
|
||||
### 4.5. Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева.
|
||||
|
||||
```python
|
||||
h=14 #Двоичное представление = 1110
|
||||
print(f"В десятичном представлении: {h}")
|
||||
print(f"В двоичном представлении: {bin(h)}\n")
|
||||
g=h<<2 # Новое двоичное представление = 111000
|
||||
print(f"В десятичном представлении: {g}")
|
||||
print(f"В двоичном представлении: {bin(g)}\n")
|
||||
g1=h>>1 # Новое двоичное представление = 0111
|
||||
print(f"В десятичном представлении: {g1}")
|
||||
print(f"В двоичном представлении: {bin(g1)}\n")
|
||||
g2=h>>2 # Новое двоичное представление = 0011
|
||||
print(f"В десятичном представлении: {g2}")
|
||||
print(f"В двоичном представлении: {bin(g2)}\n")
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
В десятичном представлении: 14
|
||||
В двоичном представлении: 0b1110
|
||||
|
||||
В десятичном представлении: 56
|
||||
В двоичном представлении: 0b111000
|
||||
|
||||
В десятичном представлении: 7
|
||||
В двоичном представлении: 0b111
|
||||
|
||||
В десятичном представлении: 3
|
||||
В двоичном представлении: 0b11
|
||||
```
|
||||
|
||||
### Задание.
|
||||
|
||||
*Придумайте два двоичных числа, не менее чем с 7 знаками, и попробуйте выполнить с ними разные операции.*
|
||||
|
||||
```python
|
||||
a = 91
|
||||
b = 101
|
||||
print(f"В десятичном представлении a: {a}")
|
||||
print(f"В двоичном представлении a: {bin(a)}\n")
|
||||
print(f"В десятичном представлении: {b}")
|
||||
print(f"В двоичном представлении: {bin(b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a & b = {a&b}")
|
||||
print(f"В двоичном представлении a & b = {bin(a&b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a | b = {a|b}")
|
||||
print(f"В двоичном представлении a | b = {bin(a|b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a ^ b = {a^b}")
|
||||
print(f"В двоичном представлении a ^ b = {bin(a^b)}\n")
|
||||
|
||||
print(f"В десятичном представлении ~a = {~a}")
|
||||
print(f"В двоичном представлении ~a = {bin(~a)}\n")
|
||||
|
||||
print(f"В десятичном представлении ~a = {~b}")
|
||||
print(f"В двоичном представлении ~a = {bin(~b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a<<4 = {a<<4}")
|
||||
print(f"В двоичном представлении a<<4 = {bin(a<<4)}\n")
|
||||
|
||||
print(f"В десятичном представлении b>>5 = {b>>5}")
|
||||
print(f"В двоичном представлении b>>5 = {bin(b>>5)}\n")
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
В десятичном представлении a | b = 127
|
||||
В двоичном представлении a | b = 0b1111111
|
||||
|
||||
В десятичном представлении a ^ b = 62
|
||||
В двоичном представлении a ^ b = 0b111110
|
||||
|
||||
В десятичном представлении ~a = -92
|
||||
В двоичном представлении ~a = -0b1011100
|
||||
|
||||
В десятичном представлении ~a = -102
|
||||
В двоичном представлении ~a = -0b1100110
|
||||
|
||||
В десятичном представлении a<<4 = 1456
|
||||
В двоичном представлении a<<4 = 0b10110110000
|
||||
|
||||
В десятичном представлении b>>5 = 3
|
||||
В двоичном представлении b>>5 = 0b11
|
||||
```
|
||||
|
||||
## 5. Операции при работе с последовательностями (строками, списками, кортежами).
|
||||
|
||||
### 5.1. Объединение последовательностей (конкатенация)(+).
|
||||
|
||||
``` python
|
||||
print('Система '+'регулирования') #Соединение двух строк символов
|
||||
print(['abc','de','fg']+['hi','jkl']) # Объединение двух списков
|
||||
print(('abc','de','fg')+('hi','jkl')) # Объединение двух кортежей
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Система регулирования
|
||||
['abc', 'de', 'fg', 'hi', 'jkl']
|
||||
('abc', 'de', 'fg', 'hi', 'jkl')
|
||||
```
|
||||
|
||||
### 5.2. Повторение (*).
|
||||
|
||||
```python
|
||||
print('ля-'*5) #Повторение строки 5 раз
|
||||
print(['ку','-']*3) #Повторение списка 3 раза
|
||||
print(('кис','-')*4) #Повторение кортежа 4 раза
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
ля-ля-ля-ля-ля-
|
||||
['ку', '-', 'ку', '-', 'ку', '-']
|
||||
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
|
||||
```
|
||||
|
||||
*Создание списка со 100 отсчетами сигнала-ступеньки:*
|
||||
|
||||
```python
|
||||
signal1=[0]*3+[1]*99
|
||||
print(signal1)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
[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]
|
||||
```
|
||||
|
||||
*Создание кортежа с отсчетами сигнала – импульса:*
|
||||
|
||||
```python
|
||||
signal2=(0,)*3+(1,)*5+(0,)*7
|
||||
print(signal2)
|
||||
print("\n")
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
|
||||
```
|
||||
|
||||
### 5.3. Проверка наличия заданного элемента в последовательности (in).
|
||||
|
||||
```python
|
||||
stroka='Система автоматического управления'
|
||||
print('автомат' in stroka) #Наличие подстроки в строке
|
||||
print('ку' in ['ку','-']*3) #Наличие контекста в списке
|
||||
print('ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')) #Наличие контекста в кортеже
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
True
|
||||
True
|
||||
False
|
||||
```
|
||||
|
||||
### 5.4. Подстановка значений в строку с помощью оператора «%».
|
||||
|
||||
***Пример №1***
|
||||
|
||||
```python
|
||||
stroka='Температура = %g %s %g'
|
||||
print(stroka % (16,' меньше ',25))
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Температура = 16 меньше 25
|
||||
```
|
||||
|
||||
***Пример №2***
|
||||
|
||||
```python
|
||||
stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
|
||||
print(stroka % {'zn1':16,'sravn':' меньше ','zn2':25})
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Температура = 16 меньше 25
|
||||
```
|
||||
|
||||
## 6. Оператор присваивания.
|
||||
|
||||
### 6.1. Обычное присваивание значения переменной (=).
|
||||
|
||||
```python
|
||||
zz=-12
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
-12
|
||||
```
|
||||
|
||||
### 6.2. Увеличение значения переменной на заданную величину (+=) или уменьшение (-=).
|
||||
|
||||
```python
|
||||
zz+=5 # Значение zz увеличивается на 5
|
||||
print(zz)
|
||||
zz-=3 # Значение уменьшается на 3
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
-7
|
||||
-10
|
||||
```
|
||||
|
||||
*Для последовательностей операция (+=) означает конкатенацию текущего значения объекта с заданным дополнением.*
|
||||
|
||||
```python
|
||||
stroka='Система'
|
||||
stroka+=' регулирования'
|
||||
print(stroka)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Система регулирования
|
||||
```
|
||||
|
||||
### 6.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=).
|
||||
|
||||
```python
|
||||
zz/=2
|
||||
print(zz)
|
||||
zz*=5
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
-5.0
|
||||
-25.0
|
||||
```
|
||||
|
||||
_Для строк операция (*=) означает повторение текущего значения объекта заданное число раз._
|
||||
|
||||
```python
|
||||
stroka*= 3
|
||||
print(stroka)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Система регулированияСистема регулированияСистема регулирования
|
||||
```
|
||||
|
||||
### 6.4. Деления с округлением вниз (//=).
|
||||
|
||||
```python
|
||||
zz//=2
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
-13.0
|
||||
```
|
||||
|
||||
### 6.5. Возведение в степень.
|
||||
|
||||
```python
|
||||
zz**=2
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
169.0
|
||||
```
|
||||
|
||||
### 6.6. Получение остатка от деления (%=).
|
||||
|
||||
```python
|
||||
zz%=3
|
||||
print(zz)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
1.0
|
||||
```
|
||||
|
||||
### Множественное присваивание.
|
||||
|
||||
```python
|
||||
w=v=10 # Переменным присваивается одно и то же значение
|
||||
print(w)
|
||||
print(v)
|
||||
|
||||
n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа
|
||||
print(n1, n2, n3)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
10
|
||||
10
|
||||
11 -3 all
|
||||
```
|
||||
|
||||
***Вместо кортежа нельзя использовать строку***
|
||||
|
||||
```python
|
||||
n1,n2,n3="11,-3,'all'"
|
||||
print(n1, n2, n3)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
Traceback (most recent call last):
|
||||
File "/home/user/Desktop/VUZ/3CURSE/POAS_labs/python-labs/TEMA3/task6.py", line 40, in <module>
|
||||
n1,n2,n3="11,-3,'all'"
|
||||
^^^^^^^^
|
||||
ValueError: too many values to unpack (expected 3)
|
||||
```
|
||||
|
||||
***Вместо кортежа можно использовать список***
|
||||
|
||||
```python
|
||||
n1,n2,n3=[11,-3,'all']
|
||||
print(n1, n2, n3)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
11 -3 all
|
||||
```
|
||||
|
||||
***Вместо кортежа можно использовать множество***
|
||||
|
||||
```python
|
||||
n1,n2,n3={11,-3,'all'}
|
||||
print(n1, n2, n3)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
11 -3 all
|
||||
```
|
||||
|
||||
***Вместо кортежа можно использовать словарь***
|
||||
|
||||
```python
|
||||
n1,n2,n3={'11':1,'-3':2,"all": 3}
|
||||
print(n1, n2, n3)
|
||||
```
|
||||
|
||||
Ответ программы:
|
||||
|
||||
```shell
|
||||
11 -3 all
|
||||
```
|
||||
|
||||
|
||||
59
TEMA3/task4.py
Обычный файл
59
TEMA3/task4.py
Обычный файл
@@ -0,0 +1,59 @@
|
||||
dv1=9
|
||||
dv2=~dv1
|
||||
print(bin(dv1))
|
||||
print(bin(dv2))
|
||||
|
||||
|
||||
print(bin(7&9)) # 111 и 1001 = 0001
|
||||
print(bin(7&8)) # 111 и 1000 = 0000
|
||||
|
||||
print(bin(7|9)) # 111 или 1001 = 1111
|
||||
print(bin(7|8)) # 111 или 1000 = 1111
|
||||
print(bin(14|5)) # 1110 или 0101 = 1111
|
||||
|
||||
print(bin(14^5)) # 1110 исключающее или 0101 = 1011
|
||||
print(f"В десятичном представлении: {14^5}")
|
||||
|
||||
h=14 #Двоичное представление = 1110
|
||||
print(f"В десятичном представлении: {h}")
|
||||
print(f"В двоичном представлении: {bin(h)}\n")
|
||||
g=h<<2 # Новое двоичное представление = 111000
|
||||
print(f"В десятичном представлении: {g}")
|
||||
print(f"В двоичном представлении: {bin(g)}\n")
|
||||
g1=h>>1 # Новое двоичное представление = 0111
|
||||
print(f"В десятичном представлении: {g1}")
|
||||
print(f"В двоичном представлении: {bin(g1)}\n")
|
||||
g2=h>>2 # Новое двоичное представление = 0011
|
||||
print(f"В десятичном представлении: {g2}")
|
||||
print(f"В двоичном представлении: {bin(g2)}\n")
|
||||
|
||||
|
||||
|
||||
|
||||
a = 91
|
||||
b = 101
|
||||
print(f"В десятичном представлении a: {a}")
|
||||
print(f"В двоичном представлении a: {bin(a)}\n")
|
||||
print(f"В десятичном представлении: {b}")
|
||||
print(f"В двоичном представлении: {bin(b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a & b = {a&b}")
|
||||
print(f"В двоичном представлении a & b = {bin(a&b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a | b = {a|b}")
|
||||
print(f"В двоичном представлении a | b = {bin(a|b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a ^ b = {a^b}")
|
||||
print(f"В двоичном представлении a ^ b = {bin(a^b)}\n")
|
||||
|
||||
print(f"В десятичном представлении ~a = {~a}")
|
||||
print(f"В двоичном представлении ~a = {bin(~a)}\n")
|
||||
|
||||
print(f"В десятичном представлении ~a = {~b}")
|
||||
print(f"В двоичном представлении ~a = {bin(~b)}\n")
|
||||
|
||||
print(f"В десятичном представлении a<<4 = {a<<4}")
|
||||
print(f"В двоичном представлении a<<4 = {bin(a<<4)}\n")
|
||||
|
||||
print(f"В десятичном представлении b>>5 = {b>>5}")
|
||||
print(f"В двоичном представлении b>>5 = {bin(b>>5)}\n")
|
||||
30
TEMA3/task5.py
Обычный файл
30
TEMA3/task5.py
Обычный файл
@@ -0,0 +1,30 @@
|
||||
print('Система '+'регулирования') #Соединение двух строк символов
|
||||
print(['abc','de','fg']+['hi','jkl']) # Объединение двух списков
|
||||
print(('abc','de','fg')+('hi','jkl')) # Объединение двух кортежей
|
||||
print("\n")
|
||||
|
||||
print('ля-'*5) #Повторение строки 5 раз
|
||||
print(['ку','-']*3) #Повторение списка 3 раза
|
||||
print(('кис','-')*4) #Повторение кортежа 4 раза
|
||||
print("\n")
|
||||
|
||||
signal1=[0]*3+[1]*99
|
||||
print(signal1)
|
||||
print("\n")
|
||||
|
||||
signal2=(0,)*3+(1,)*5+(0,)*7
|
||||
print(signal2)
|
||||
print("\n")
|
||||
|
||||
|
||||
stroka='Система автоматического управления'
|
||||
print('автомат' in stroka) #Наличие подстроки в строке
|
||||
print('ку' in ['ку','-']*3) #Наличие контекста в списке
|
||||
print('ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')) #Наличие контекста в кортеже
|
||||
|
||||
stroka='Температура = %g %s %g'
|
||||
print(stroka % (16,' меньше ',25))
|
||||
|
||||
|
||||
stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
|
||||
print(stroka % {'zn1':16,'sravn':' меньше ','zn2':25})
|
||||
41
TEMA3/task6.py
Обычный файл
41
TEMA3/task6.py
Обычный файл
@@ -0,0 +1,41 @@
|
||||
zz=-12
|
||||
print(zz)
|
||||
print('\n')
|
||||
|
||||
zz+=5 # Значение zz увеличивается на 5
|
||||
print(zz)
|
||||
zz-=3 # Значение уменьшается на 3
|
||||
print(zz)
|
||||
print('\n')
|
||||
|
||||
|
||||
stroka='Система'
|
||||
stroka+=' регулирования'
|
||||
print(stroka)
|
||||
print('\n')
|
||||
|
||||
zz/=2
|
||||
print(zz)
|
||||
zz*=5
|
||||
print(zz)
|
||||
print('\n')
|
||||
|
||||
stroka*= 3
|
||||
print(stroka)
|
||||
print('\n')
|
||||
|
||||
zz//=2
|
||||
print(zz)
|
||||
zz**=2
|
||||
print(zz)
|
||||
zz%=3
|
||||
print(zz)
|
||||
print('\n')
|
||||
|
||||
|
||||
w=v=10 # Переменным присваивается одно и то же значение
|
||||
print(w)
|
||||
print(v)
|
||||
|
||||
n1,n2,n3={'11':1,'-3':2,"all": 3}
|
||||
print(n1, n2, n3)
|
||||
Ссылка в новой задаче
Block a user