TimoshenkoAA 1 месяц назад
Родитель 2143450c14
Сommit ac4c454197

@ -1,6 +1,6 @@
# Тема 3. Операции с объектами
Выполнил : Тимошенко А.А.
Проверил : Козлюк Д.А.
# Выполнил : Тимошенко А.А.
# Проверил : Козлюк Д.А.
## Пункт 1.
```
@ -28,8 +28,8 @@ True
>>> logiz4
False
```
### Пункт 2.2
Преобразование в целое с заданной системой счисления (по умолчанию десятичная)
2.2 Преобразование в целое с заданной системой счисления (по умолчанию
десятичная)
```
>>> tt1=int(198.6)
>>> tt1
@ -49,8 +49,26 @@ Traceback (most recent call last):
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
```
В последней иструкции видим ошибку. Это происходит из-за того, что int() не может перевести строку в целочисленный тип, если указана дробная часть.
Как видно, последняя команда вернула диагностическое сообщение. Это происходит
потому, что команда int ожидает, что ей сообщат строку, похожую на тип int
(только цифры, может быть знак в начале). Здесь есть точка, поэтому вознакает
несоответствие ожидаемого формата фактическому. Можно сначала строку перевести
в число с плавающей точкой, а потом уже в int.
Еще варианты:
```
>>> tt6=int("+43")
>>> tt6
43
>>> tt6=int("aaa")
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
tt6=int("aaa")
ValueError: invalid literal for int() with base 10: 'aaa'
>>> tt6=int("aaa", 16)
>>> tt6
2730
```
Преобразование в вещественное число:
```
>>> flt1 = float(789)
@ -412,7 +430,7 @@ TypeError: can't mod complex numbers.
### Пункт 5.4
(возвращается единица, если оба разряда разные)
Двоичный XOR (^) (возвращается единица, если оба разряда разные)
```
>>> bin(14^5)
'0b1011'
@ -490,7 +508,7 @@ TypeError: can't mod complex numbers.
'-0b1011110'
```
Двоичное И
```
``
>>> bin(93&102)
'0b1000100'
```
@ -499,6 +517,11 @@ TypeError: can't mod complex numbers.
>>> bin(93|102)
'0b1111111'
```
Двоичное XOR
```
>>> bin(93^102)
'0b111011' #Число стало короче, т.к. автоматически убрался незначащий ноль слева
```
Побитовый сдвиг
```
>>> 93 >> 3
@ -530,10 +553,9 @@ TypeError: can't mod complex numbers.
['abc', 'de', 'fg', 'hi', 'jkl']
```
Кортежи
```
>>> ('abc','de','fg')+('hi','jkl')
('abc', 'de', 'fg', 'hi', 'jkl')
```
Конкатериновать словари и множества нельзя.
```
>>> {'one':1 , 'two':2} + {'three':3}
@ -618,7 +640,21 @@ Traceback (most recent call last):
stroka1 % (2024, 21, 45)
TypeError: not all arguments converted during string formatting
```
Вот различные типы вставок для оператора %:
%s - строка
%d и %i - целое число (d - всегда десятичное, а i - десятичное или переведенное
в десятичное из другой с/с, а еще может содержать знак)
%f - число с плавающей точкой
%e - экспоненциальная форма записи числа
%g - автовыбор между e и f в зависимости от размера (очень большие и очень близкие к нулю
числа удобнее записать в экспоненциальной форме. Обычно %g будет использовать %f,
если значение находится в пределах от 1e-4 до 1e+15)
%.nf - число с плавающей точкой, но конкретным количеством знаков после запятой (пр. %.2f)
```
>>> stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
>>> stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
```
## Пункт 7
Оператор присваивания
@ -1079,6 +1115,36 @@ dict_keys(['key1', 'key2', 'key3', 'key4', 'key5'])
>>> di.values()
dict_values([1, 'val2', 34.6, 'f', False])
```
Пояснение:
Возвращаются объекты dict_keys, dict_values, dict_items, и они - объекты-итераторы. Они
ссылаются на адреса ключей или значений в памяти, но не хранят значения. Также эти объекты
автоматически обновляются при обновлении словаря. Например, добавим в словарь пару:
```
>>> di["key6"] = 546
>>> di
{'key1': 1, 'key2': 'val2', 'key3': 34.6, 'key4': 'f', 'key5': False, 'key6': 546}
```
Теперь в отдельный объект положим dict_keys:
```
>>> dikeys = di.keys()
>>> dikeys
dict_keys(['key1', 'key2', 'key3', 'key4', 'key5', 'key6'])
```
Удалим с помощью метода .popitem() последний добавленный элемент:
```
>>> di.popitem()
('key6', 546)
```
Вот как теперь выглядит словарь:
```
>>> di
{'key1': 1, 'key2': 'val2', 'key3': 34.6, 'key4': 'f', 'key5': False}
```
Вот как выглядит dikeys:
```
>>> dikeys
dict_keys(['key1', 'key2', 'key3', 'key4', 'key5'])
```
Полное очищение словаря
```
>>> newdi.clear()

Загрузка…
Отмена
Сохранить